如何在UNIX的行尾添加文本

时间:2012-03-28 18:13:29

标签: unix append

以下是设置的方式......

LINE W/ TEXT1
LINE W/ TEXT2
LINE W/ TEXT3
FIX W/ TEXT5
LINE W/ TEXT6
LINE W/ TEXT7

想法是获取FIX行并在该行的末尾添加“ * ”(3个星号)。

我一直有问题用文字取代第一个单词而不是添加到最后,一直搞乱这种格式

sed'/ FIX / s / $ / * /'myfile

任何帮助?

2 个答案:

答案 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

我希望这会有所帮助。