将文本附加到管道文件

Append text to a piped file

我正在通过管道传输文件 bash 我怎样才能在文件末尾附加一些文本?

cat filename.txt | append "text to append" | final_command

编辑:这必须在不创建新文件的情况下完成

应该这样做:

(cat filename.txt && echo "text to append") | final_command

如果您不想在末尾使用换行符,请使用 echo -n:

(cat filename.txt && echo -n "text to append") | final_command

在我看来,这个解决方案更简洁:

echo "text to append" | cat filename.txt - | final_command

也比较灵活,比如你可以

echo "text to append" | cat file1.txt - file2.txt ... | final_command

OP 选择的解决方案在第二种情况下会很尴尬。

还有几个选择:

cat filename.txt <(echo "text to append") | final_command

final_command <(cat filename.txt; echo "text to append")

(假设 final_command 可以从参数而不是默认标准输入中获取输入)