我试图结合猫和尾命令:
像这样:
我有文件名“text1”,并希望合并到文件名“text2”。但首先我要在文件text1中删除7行,然后才合并到文件“text2”
tail --lines=+7 text1 | cat text2 > out_put
这在Ubuntu 12.04上对我不起作用
{ tail --lines=+7 text1; cat text2; } > out_put
要么
tail --lines=+7 text1 | cat - text2 > out_put
通过-
告诉cat首先从stdin读取,然后从text2读取。
用两个步骤/命令完成:
tail --lines=+7 text1 > output
cat text2 >> output
或者甚至像这样,如果第一次成功,它将执行第二次:
tail --lines=+7 text1 > output && cat text2 >> output
请注意,我们使用>>
将数据附加到文件中,因此它将在文件中存在的先前数据之后添加。使用>
,我们只删除之前的所有内容。
另一种方法是使用“here-string”(在man bash
中描述):
cat - <<< "$(tail --lines=+3 text1)" text2 > out_put