在每行末尾添加字符

时间:2017-02-12 20:07:58

标签: bash perl awk sed

我已经尝试过我找到的所有解决方案,但似乎没有任何效果。

我有一个包含文本数据的文件。我需要在每行的末尾添加一些字符。

我已经尝试过了:

awk '{print $0"XYZ"}' $newfilename-final.txt > $newfilename-XYZ.txt
perl -nle 'print $_, "XYZ"' $newfilename-final.txt > $newfilename-XYZ.txt
sed 's/$/XYZ/' $newfilename-final.txt > $newfilename-XYZ.txt

所有这些都添加了XYZ,但不是在每个字符串的末尾,而是在字符串之间的新行中。

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

测试你的awk程序,它对我有用。我想问题是你的输入文件使用的是与你的操作系统默认值不同的新行序列(当你在UNIX或Mac OS上时,可能是Windows风格的“CR + LF”)。如果是这种情况,那么另一篇文章可能会有所帮助:How to convert DOS/Windows newline (CRLF) to Unix newline (\n) in a Bash script?

答案 1 :(得分:0)

如果是每一行

sed 's/[^[:print:]]*$/[Here]&/' YourFile

在插入[^[:print:]]*&替换模式

之前,您将处理每个尾随不可打印的字符