Bash 在每行末尾添加字符
我已经尝试了我找到的所有解决方案,但似乎没有什么能像它应该的那样起作用 我有一个包含文本数据的文件。我需要在每行末尾添加一些字符 我已经试过了:Bash 在每行末尾添加字符,bash,perl,awk,sed,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-f
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,但不是在每个字符串的末尾,而是在字符串之间的新行中
如何解决这个问题?测试您的awk程序,它可以按预期为我工作。我想问题在于,输入文件使用的换行符序列与操作系统默认的不同(在UNIX或Mac操作系统上可能是Windows风格的“CR+LF”)。如果是这样的话,另一篇文章可能会有所帮助:。如果它是每一行的话
sed 's/[^[:print:]]*$/[Here]&/' YourFile
在插入之前,用替换模式中的
[^[:print:][]*
和&
处理每个尾随的不可打印字符您的awk解决方案在这里工作,您的sed解决方案也在这里工作。您可能在行尾有一个回车符sed-e's/\r//g'-e's/$XYZ/g'
可以工作。或者将sub(/\r/,“”,$NF)
添加到awk脚本的开头以删除\r
。