结合猫尾

问题描述 投票:3回答:3

我试图结合猫和尾命令:

像这样:

我有文件名“text1”,并希望合并到文件名“text2”。但首先我要在文件text1中删除7行,然后才合并到文件“text2”

     tail --lines=+7 text1 | cat  text2 > out_put 

这在Ubuntu 12.04上对我不起作用

ubuntu cat tail
3个回答
6
投票
{ tail --lines=+7 text1; cat text2; } > out_put 

要么

tail --lines=+7 text1 | cat - text2 > out_put 

通过-告诉cat首先从stdin读取,然后从text2读取。


2
投票

用两个步骤/命令完成:

tail --lines=+7 text1 > output
cat text2 >> output

或者甚至像这样,如果第一次成功,它将执行第二次:

tail --lines=+7 text1 > output && cat text2 >> output

请注意,我们使用>>将数据附加到文件中,因此它将在文件中存在的先前数据之后添加。使用>,我们只删除之前的所有内容。


0
投票

另一种方法是使用“here-string”(在man bash中描述):

cat - <<< "$(tail --lines=+3 text1)" text2 > out_put
© www.soinside.com 2019 - 2024. All rights reserved.