2017-09-26 67 views
1

我需要在另一個文件的特定位置追加一個文件。 我得到了行號的話,我的文件是:在bash中的另一個文件的中間追加一個文件

file1.txt 

上午

餅乾

,而第二個是

file2.txt 

一個

命名

因此,該解決方案後,FILE1.TXT應該像

上午

一個

命名

餅乾

的解決方案應包含「和/在這兩個文件中的字符存在兼容。

任何工具就可以了,只要它是天然的(我的意思是,沒有任何新的軟件安裝)

謝謝!

回答

2

請問您是否可以嘗試以下方法,並告訴我是否可以幫助您。

awk 'FNR==3{system("cat file2.txt")} 1' file1.txt 

輸出如下。

I 
am 
a 
black 
dog 
named 
Cookie 

說明:這裏檢查,如果行數爲3,而讀INPUT_FILE命名FILE1.TXT,如果是,那麼用awk的系統工具,它可以幫助我們調用shell的命令,那麼我打印文件2。使用cat命令的txt。然後提到1將打印來自file1.txt的所有行。因此,我們可以將來自file2.txt的行連接到file1.txt中。

+1

這個工作,以決定在文件1 headtail參數!要理解你的答案......翻譯是: 當你到達第3行cat file2.txt然後停下來? 有趣的使用系統().. thnx! –

+0

@WyattGillette,不客氣。很高興它幫助你,我只是添加了相同的解釋,請讓我知道你是否有任何其他疑問。 – RavinderSingh13

+1

仔細清楚,再次感謝@ RavinderSingh13 –

1

除了什麼RavinderSingh13使用sed建議另一種選擇: 向file2.txt文本中的特定行之後添加到file1.txt

sed -i '2 r file2.txt' file1.txt 

輸出:

I 
am 
a 
black 
dog 
named 
Cookie 

而且添加的文件後,匹配圖案:

sed -i '/^YourPattern/ r file2.txt' file1.txt 
+0

也這一個工作,我給第一個由於按時間順序的答案:) btw,這意味着: 編輯流在第2行插入file2.txt在file1.txt?看起來更簡單... –

+0

意思是在file1的第二行之後添加file2的行。它不像其他答案那樣調用'cat'。 – Ardit

+0

yup很容易與'r',我怎麼可能不考慮它 –

1

如何

head -2 file1 && cat file2 && tail -1 file1 

你可以指望的行數使用

wc -l file1 
+1

創造性在這裏工作 它的工作,很好的解決方法 一點是:如果文件是巨大的(例如5000+行)將是一個問題來計算尾部參數...容易找到頭一個(cat -n和grep) 可以這樣做: tac file2> file3 && cat -n file3 | grep狗 找到尾巴參數,艱難...有趣的方式和工作 –

相關問題