我在目录中有文件: 例如:
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
答案 0 :(得分:2)
此sed
示例包含两个替换命令,一个用于第一行(标题),一个用于最后一行的尾部(在第二个替换中由$表示)。 -i
的{{1}}选项可在适当位置编辑文件。
sed
输出:
sed -i '1 s/^.*value=/yoursubstitution value=/; $ s/^.*value=/yoursubstitution value=/'
答案 1 :(得分:0)
您可以从行首(^
)匹配到value=
echo 'header: 123xxx xxx value=file1id' | sed 's/^.*value=/header: 321aaa aaa value=/'
header: 321aaa aaa value=file1id