Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在每行末尾添加字符_Bash_Perl_Awk_Sed - Fatal编程技术网

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