簡體   English   中英

如何用新的標頭和尾部字符串替換目錄中所有文件的標頭和尾部,但最多只能確定一個字符?

[英]How do I replace the header and trailer of all files in a directory with a new header and trailer string, but only up to a certain character?

我在目錄中有文件:例如:

file1
file2

這兩個文件的內容都如下所示(標題,正文,尾部單詞僅供參考):

header: 123xxx   xxx   value=file1id
body: blah blah blah
trailer: 123zzz   zzz   value=file1id

我想運行一個linux命令,該命令將替換目錄中所有文件的標題和結尾,直到“ file1id”為止,以便它們看起來如下所示:

header: 321aaa   aaa   value=file1id
body: blah blah blah
trailer: 321bbb   bbb   value=file1id

我可以輕松地找到如何替換Google上文件中的整個標頭或預告片,但是我的文件中需要file1id。 我需要一些有關如何循環瀏覽目錄中的文件以及將標題和結尾替換為標題和結尾中的特定字符的指導。

我已經看到了各種各樣的sed和awk表達式,它們刪除並替換了標題或結尾。

sed -rne 's/(value=)\s+\w+/\1 yyy/gip'

如上文所述,我想運行一個linux命令,該命令將替換目錄中所有文件的標題和結尾,直到“ file1id”為止,以便它們看起來如下所示:

header: 321aaa   aaa   value=file1id
body: blah blah blah
trailer: 321bbb   bbb   value=file1id

這個sed示例具有兩個替換命令,一個用於第一行(標題),一個用於最后一行的尾部(在第二個替換中由$表示)。 sed -i選項可在適當位置編輯文件。

sed -i '1 s/^.*value=/yoursubstitution value=/; $ s/^.*value=/yoursubstitution value=/'

輸出:

yoursubstitution value=file1id
body: blah blah blah
yoursubstitution value=file1id

您可以從行首( ^ )匹配為value=

echo 'header: 123xxx   xxx   value=file1id' | sed 's/^.*value=/header: 321aaa   aaa   value=/'
header: 321aaa   aaa   value=file1id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM