匹配的字符串後複製FILE_B最近,我需要做這項工作:猛砸,如果發現FILE_A匹配的字符串,然後在FILE_A
步驟1
查找在FILE_A一個匹配的字符串,例如,要匹配的字符串是「ILikeeStackoverflow」。
file_A
......
ILikeStackoverflow
The line after "ILikeStackoverflow"
.......
步驟2
如果該字符串 「ILikeeStackoverflow」 是存在的,然後複製另一個FILE_B(小於10行)到這個FILE_A,只是串之後。
所以做這個副本之後,FILE_A應該是這樣的形狀:
file_A
......
ILikeStackoverflow
Line_1_of_file_B
Line_2_of_file_B
......
Line_n_of_file_B
The line after "ILikeStackoverflow"
.......
我的代碼是這樣的,但不能正常工作(無論FILE_A和FILE_B在當前目錄)。
match_string="ILikeStackoverflow"
sed " /^$match_string/a"$file_B" " file_A
非常感謝您的建議!
編輯:
現在,我知道爲什麼我被卡住,但無法弄清楚如何修復代碼。請繼續評論,如果你有一個想法,非常感謝!
問題是,只有當字符串佔用一個單獨的行,sat的代碼工作。如果匹配的字符串只是長字符串的一部分,那麼他的代碼就無法工作。例如,如果fileA是這樣的,那麼代碼無法工作。
file_A
......
/test/begin/ILikeStackoverflow/test/end
The line after "ILikeStackoverflow"
.......
其實,在我的 「的index.html」,要匹配的字符串是: 「5000S-IntW300」,而包含我的匹配字符串行是:
/blue-ccd-data/DAMIC_SNOLAB_RUN1/5000s-IntW300-OS
任何建議,以解決它呢?
再次感謝!
編輯2:
其實,我想比匹配串線後的1個多行的地方複製FILEB。舉例來說,真正的位置是:
file_A
......
/test/begin/ILikeStackoverflow/test/end
The line has an important information and fileB shouldn't be copied here.
This is the exact line of fileB should be copied.
.......
你是如何運行的** sat's **命令?請注意,他的'^'在行的開始處做了一個零寬度斷言,這不是行中間的'5000s-IntW300'的情況。 – Birei
@Birei,你明白了!我也是 !所以,當我刪除這個'^'時,它就起作用了!但是,還有一個小問題但重要的問題:我將再次編輯我的文章! – user2740039
所以,你想在比賽結束後插入其他文件的兩行內容,而不是下一個。總是這樣或者依賴於其他任何東西? – Birei