文件foo有
one
two
文件栏有
two
three
four
five
我想将栏的2-3行追加到foo的末尾,以便foo看起来像
one
two
three
four
我该怎么做?我知道插入是sed -n '2,3p' bar > foo
,所以我尝试了sed -n '2,3p' bar >> foo
但是没有用;我在ssh连接中做了所有事情,它挂起了
编辑:
这不是一个解决方案,但之前这是在另一个sed调用旁边的bash命令中运行。我将它移动到一个单独的命令,这是有效的。
答案 0 :(得分:3)
假设您在第一次尝试时没有首次覆盖foo
,那么您的第二次尝试对我来说是正确的。也就是说,从描述的初始状态开始,运行:
sed -n '2,3p' bar >>foo
应将bar
的第2行和第3行附加到foo
。
一般情况下,在您知道自己完成之后立即退出sed
通常是个好主意,例如,为以下行添加q
命令: / p>
sed -n '2,3p;4q' bar >>foo
现在,如果bar
是1000万行,它仍会在第4行而不是10,000,000行退出。 (测试类似seq 1 10000000 | sed …
的内容以查看差异。)当然,这对于文件中四行的示例并不重要。
答案 1 :(得分:1)
使用awk:
awk 'NR==2||NR==3' file2 >> file1