我需要将一些字符附加到文件中包含三个冒号 ( ) 字符的一行的末尾:
。这三个:
字符不会相邻。
最初我需要编辑的行包含字符/16
,我能够使用以下sed
命令成功找到并编辑它:
sed "/\/16/ s/$/ ${runid} ${dirname} ${doc}/" $logname > $logname.new
然而,应用程序已更改,字符/16
不再出现在目标行上。我现在找到它的唯一方法是找到恰好包含三个字符的行:
。
答案1
尝试
sed "s/^[^:]*:[^:]*:[^:]*:[^:]*$/s/$/ ${runid} ${dirname} ${doc}/" $logname > $logname.new
在哪里
[^:]*
任意数量的符号,不是冒号^
和$
是行的开头和结尾。
这可能是打高尔夫球的。