我想将 ls 的输出从:
1.png
2.png
3.png
到
Start [1.png] End
Start [2.png] End
Start [3.png] End
我需要同时在一行的开头和结尾附加一个字符串。 我不反对使用文本文件来存储输出,但如果有更好的方法,我会避免它。
我知道我可以使用
ls | sed 's/^/Start [/'
和
ls | sed 's/$/] End/'
但是有没有办法将这两个操作合并为 1 个语句?并避免使用临时文本文件?
ls | sed 's/^/Start [/' | sed 's/$/] End/'
通过实验发现了自己。
我发现使用xargs
更容易,请尝试:
$ xargs < <(ls) -I@ echo "start [ @ ] END"
-I@
将有助于将@
用作占位符,因此您可以使用echo "start [ @ ] END
,@
将被替换为ls
的输出
使用sed
:
sed 's/^/start [ /;s/$/ ] end/'
start [ 1.png ] end
start [ 2.png ] end
start [ 3.png ] end
你能试试下面的吗?
ls | awk '{print "start [" $0 "] END"}'
或
ls | sed 's/^/start [/;s/$/] end/'