老男孩教育每日一題-第84天-兩個文件,把第一個文件中的第2、3行內容添加到第二個文件的第3行後面
兩個文件如下:
[[email protected] ~]# cat 1.txt 111 222 333 [[email protected] ~]# cat 2.txt AAA bbb ccc ddd
要求修改後的文件
[[email protected] ~]# cat 2.txt AAA bbb ccc 222 333 ddd ``
參考答案:
方法1:
[[email protected] ~]# sed -n 2,3p 1.txt |xargs |sed -r ‘s# #\\n#g‘|sed -r ‘s#.*#sed -i "3a&" 2.txt#g‘ |bash [[email protected]
方法2:
[[email protected] ~]# sed -i "3a$(sed -n ‘2,3p‘ 1.txt |xargs |sed ‘s# #\\n#g‘)" 2.txt [[email protected] ~]# cat 2.txt AAA bbb ccc 222 333 ddd
方法3:
[[email protected] ~]# awk ‘BEGIN{while("cat 1.txt"|getline){a++;if(a>=2&&a<=3){b=b"\n"$0}};while("cat 2.txt"|getline){c++;if(c==3){print $0,b > "2.txt"}else{print $0 > "2.txt"}}close("2.txt")}‘ [[email protected]