[英]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.