Bash:将文本附加到文件输出

Bash:将文本附加到文件输出

我对 Shell 脚本非常陌生,所以这可能是一个非常简单的解决方案,但我很难让它发挥作用。我有一个包含以下内容的文件:

example1.eu 
example2.eu 
example3.eu

我想要做的是将文件的内容输出为单行格式,如下所示。

测试.example1.eu,测试.example2.eu,测试.example3.eu

等等。

我的脚本中有这个,但我不知道如何在文件的第一个条目中附加“测试”。

cat file | xargs | sed -e 's/ /,test./g'

示例1.eu,测试.示例2.eu,测试.示例3.eu

请指教谢谢

答案1

您可以使用“粘贴”来设置分隔符。例如

cat file | sed -e 's/^/test./' | paste -sd ','

编辑:改进版本(tripleee 的评论)

sed file -e 's/^/test./' | paste -sd ','

答案2

可以使用以下命令完成awk

 $ awk '{a=a"test."$0","}END{sub(/,$/,"",a);print a}' file
 test.example1.eu,test.example2.eu,test.example3.eu

这将创建一个字符串变量a,并将每一行和一个逗号附加到字符串中。然后它将最后一个逗号替换为空并打印字符串。

先前的响应带有尾随逗号:

 $ awk 'BEGIN{ORS=","}{print "test."$0}' file
test.example1.eu,test.example2.eu,test.example3.eu,

这会将输出记录分隔符设置为逗号,然后打印test.添加到字符串的每一行。

相关内容