我有这个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
我一直在尝试找出需要更改以除去.-的部分,但是我运气不佳。
有没有办法只从结果中切除前两个字符?
谢谢!
答案 0 :(得分:0)
我认为您想在basename
命令中使用find
:
find . -type f ! -name 'checkData' ! -name 'correctData' ! -name 'makeStructure' \
-exec basename {} \; | \
sed -i "1{s|.*|{}|;s|.*/testarea/||;s|/[^/]*$||;s/[/]/-/g;}"
这应该在文件名开头删除./
。