unix – 仅在第一行匹配后插入?
发布时间:2020-12-16 01:20:28 所属栏目:安全 来源:网络整理
导读:试着这样做: sed -e '/^MatchMeOnce/iMATCHED' 在示例文本上: Line1Line2MatchMeOnceLine4MatchMeOnceLine6 如何使其仅匹配第一个记录事件并且在后续行上不匹配? Line1Line2MATCHEDLine4MatchMeOnceLine6 这可能对你有用: sed '1,/MatchMeOnce/s//MATCH
试着这样做:
sed -e '/^MatchMeOnce/i MATCHED' 在示例文本上: Line1 Line2 MatchMeOnce Line4 MatchMeOnce Line6 如何使其仅匹配第一个记录事件并且在后续行上不匹配? Line1 Line2 MATCHED Line4 MatchMeOnce Line6
这可能对你有用:
sed '1,/MatchMeOnce/s//MATCHED/' file 只要MatcMeOnce在第二行或更高,或者这个(GNU sed),这将适用于sed的所有变体: sed '0,/MatchMeOnce/s//MATCHED/' file 适合上述边缘条件: 或者将整个文件篡改到内存中的另一种选择(所有sed): sed ':a;$!{N;ba};s/MatchMeOnce/MATCHED/' file 这有一个额外的好处,如果你想选择第n个而不是第一个MatchMeOnce你需要做的就是改变出现标志,即改变第二次出现: sed ':a;$!{N;ba};s/MatchMeOnce/MATCHED/2' file 要更改最后一次使用: sed ':a;$!{N;ba};s/(.*)MatchMeOnce/1MATCHED/' file (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |