我想在每行附加文件名。 我想这可以用awk或sed完成。我试过这样的东西,但它没有用。
for file in *.cds; do sed -i '/^>/ s/$/[file]/' $file ; done
我把[file]放在括号之间的文件名,比如[name1]。 谢谢你的帮助。
答案 0 :(得分:2)
这应该做
for file in *.cds; do sed -i 's/$/['"$file"']/' "$file"; done
在每行末尾的方括号中附加文件名。
更新:我不知道为什么人们想在文件名中使用空格,但如下所述,您应引用bash变量以将其保留为两个实例的逻辑单元
如果您想限制仅以>
开头的追加线,请将其添加为模式
for file in *.cds; do sed -i '/^>/s/$/['"$file"']/' "$file"; done
答案 1 :(得分:1)
使用GNU awk进行就地编辑:
awk -i inplace '{print $0 "[" FILENAME "]"}' *.cds