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