我在文件中有以下单独的值:
加州
纽约
华盛顿
南卡罗来纳州
堪萨斯
unix脚本在一行中显示什么(如下图所示)
' California',' New York'' Washington'' South Carolina'' Kansas'
[我不希望有任何中间文件来实现这一点..只需一个echo代码就可以了]
答案 0 :(得分:2)
使用此命令tr '\n' ',' < input_file
单引号使用
sed -e "s/^/'/" input_file | sed -e "s/$/'/" | tr '\n' ','
(未针对单/双引号转义问题进行测试)
对于变量
NEW_VAR=$(echo $VAR | sed -e "s/^/'/" | sed -e "s/$/'/" | tr '\n' ',')
答案 1 :(得分:0)
您需要使用awk格式化输出。 sed and awk
是否响铃?
The file <test.txt>
California
New York
Washington
South Carolina
Kansas
$ grep input file | awk '{print}' ORS=', '
California, New York, Washington, South Carolina, Kansas
然后连接你的字符串并注意正确的输出。
用awk你可以试试这个
sudo awk -F'\n' '{if(NR == 1) {printf "\x27" $0 "\x27"} else {print "," "\x27" $0 "\x27"}}' test.txt
'California','New York','Washington','South Carolina','Kansas'
你也可以尝试这个
sudo awk 'BEGIN {RS=""}{gsub(/\n/,"\x27,\x27",$0); print $0}' test.txt