如何在sed语句中使用剪切

时间:2018-07-08 00:27:48

标签: bash shell unix sed cut

我有这个sed声明:

#!/bin/bash

find . -type f ! -name 'checkData' ! -name 'correctData' ! -name 'makeStructure' -exec sed -i "1{s|.*|{}|;s|.*/testarea/||;s|/[^/]*$||;s/[/]/-/g;}" {} \;

当前它正在完全按照我的需要进行操作,但是没有以我想要的格式显示日期:

  

2000-01-18

它将日期返回为

  

.- 2000-01-18

我一直在尝试找出需要更改以除去.-的部分,但是我运气不佳。
有没有办法只从结果中切除前两个字符?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您想在basename命令中使用find

find . -type f ! -name 'checkData' ! -name 'correctData' ! -name 'makeStructure' \
-exec basename {} \; | \
sed -i "1{s|.*|{}|;s|.*/testarea/||;s|/[^/]*$||;s/[/]/-/g;}"

这应该在文件名开头删除./