Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix bash在ls输出的开始和结束处追加文本_Unix_Sed_Append_Ls - Fatal编程技术网

Unix bash在ls输出的开始和结束处追加文本

Unix bash在ls输出的开始和结束处追加文本,unix,sed,append,ls,Unix,Sed,Append,Ls,我想将ls的输出更改为: 1.png 2.png 3.png 进入 我需要在一行的开头和结尾同时附加一个字符串。 我不反对使用文本文件来存储输出,但是如果有更好的方法,我会避免使用文本文件 我知道我可以用 ls | sed 's/^/Start [/' 及 但是,有没有办法将这两个操作合并成一个语句?并避免使用临时文本文件?请尝试以下内容 ls | awk '{print "start [" $0 "] END"}' 或 使用sed: sed 's/^/start [ /;s/$/ ]

我想将ls的输出更改为:

1.png
2.png
3.png
进入

我需要在一行的开头和结尾同时附加一个字符串。 我不反对使用文本文件来存储输出,但是如果有更好的方法,我会避免使用文本文件

我知道我可以用

ls | sed 's/^/Start [/'


但是,有没有办法将这两个操作合并成一个语句?并避免使用临时文本文件?

请尝试以下内容

ls | awk '{print "start [" $0 "] END"}'


使用
sed

sed  's/^/start [ /;s/$/ ] end/' 
start [ 1.png ] end
start [ 2.png ] end
start [ 3.png ] end

通过实验发现自己。

我发现使用
xargs更容易,尝试一下:

$ xargs < <(ls) -I@ echo "start [ @ ] END"

$xargs<
sed's/[0-9]*\.png/Start[&]End/'
?不如@WiktorStribiżew优雅,但更接近您的代码:
ls | sed's/^/Start[/'| sed's/$/]End/'
您缺少brackets@gogaz,现在当然可以了,非常感谢您让我知道。您也可以使用
sed的/*/Start[&]End/'
来处理这个案例。。另见
ls | sed 's/^/start \[/;s/$/\] end/'
sed  's/^/start [ /;s/$/ ] end/' 
start [ 1.png ] end
start [ 2.png ] end
start [ 3.png ] end
ls | sed 's/^/Start [/' | sed 's/$/] End/'
$ xargs < <(ls) -I@ echo "start [ @ ] END"