我对 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.
添加到字符串的每一行。