【发布时间】:2016-02-22 12:18:53
【问题描述】:
我正在尝试使用 bash 脚本来实现这样的目标:
c.txt:
contents of a.txt
###
contents of b.txt
基本上我想在两个文件的内容之间写一个常量字符串并保存到一个新的而不修改原始文件。
这是我能得到的最接近的:
echo "###" >> a.txt|cat b.txt >> out.txt
【问题讨论】:
我正在尝试使用 bash 脚本来实现这样的目标:
c.txt:
contents of a.txt
###
contents of b.txt
基本上我想在两个文件的内容之间写一个常量字符串并保存到一个新的而不修改原始文件。
这是我能得到的最接近的:
echo "###" >> a.txt|cat b.txt >> out.txt
【问题讨论】:
使用- 作为文件名通常意味着使用标准输入。因此:
echo 'something' | cat a.txt - b.txt > new.txt
【讨论】:
你可以用三个命令来做到这一点:
cat a.txt > out.txt
echo "###" >> out.txt
cat b.txt >> out.txt
也许可以用它来做一个函数:
append_hash() { cat $1 > $3; echo "###" >> $3; cat $2 >> $3; }
用法:
append_hash a.txt b.txt out.txt
【讨论】:
{ cat a.txt; echo "###"; cat b.txt; } > out.txt。这更有效(虽然不是很明显),因为它只需要打开一次out.txt,而不是每个命令一次。