以下是设置的方式......
LINE W/ TEXT1
LINE W/ TEXT2
LINE W/ TEXT3
FIX W/ TEXT5
LINE W/ TEXT6
LINE W/ TEXT7
想法是获取FIX行并在该行的末尾添加“ * ”(3个星号)。
我一直有问题用文字取代第一个单词而不是添加到最后,一直搞乱这种格式
sed'/ FIX / s / $ / * /'myfile
任何帮助?
答案 0 :(得分:2)
我认为问题是您的输入文件是DOS格式,因此在每行结束之前都有一个回车符,因此您的sed在回车后但在换行符之前插入 * 。你应该能够看到发生了什么:
sed '/FIX/s/$/***/' myfile | cat -v
看看这是否可以作为解决方案:
sed '/FIX/s/\([^[:cntrl:]]*\)/\1***/' myfile
祝你好运。
答案 1 :(得分:0)
首先,清理你的文件
dos2unix yourFile
然后
sed '/FIX/s/$/\*\*\*/' yourFile
<强>输出强>
LINE W/ TEXT1
LINE W/ TEXT2
LINE W/ TEXT3
FIX W/ TEXT5***
LINE W/ TEXT6
LINE W/ TEXT7
我希望这会有所帮助。