Answers:
只需使用循环而不是简单的cat
:
for file in /path/to/targetdir/*; do
echo "-------- $file -------"
cat "$file"
done
这将起作用:
sed '' -- *
您不需要任何shell循环,否则,它将始终在带有\n
尾线的文件输出之后-也许最后一个除外。
否则,如果您希望在每个文件的输出之间输出空白行,则可以这样做:
bpaste(){
eval "paste -'sd\n' -- $(x=0;for f do printf "\"\${$((x+=1))}\" - ";done)"
} </dev/null
这将始终在文件的输出之后加上\n
粗线和附加的空白行。
您可以这样称呼它:
bpaste *
for n in 1 2 3; do printf "$n" >"$n"; done; sed '' -- [123]
sed
必须\n
在打印其他任何东西之前总是先打印ewline,但是最后一个文件的最后一行可能不会\n
附加ewline。我可以发誓我已经回答了这个问题。
1\n2\n3
。有用。它总是如此。它为您打印什么?
\n
在RHS中使用不是标准的。您可以使用sed -e '$G'
。