我是bash编程的新手,需要将单个文本列转换为单行,然后根据模式将行中的字符分开。
我有一个带有列的文本文档,该列有一个带六位数的字母 在每一行:
a111111
b222222
c333333
d444444
e555555
我需要将上面的列转换为以下行:
'a111111','b222222','c333333','d444444','e555555'
有人可以建议如何实现这一目标吗?
答案 0 :(得分:2)
您可以将awk
与printf
:
awk -v ORS=, 'NR>1{printf "%s", ORS} {printf "\x27%s\x27", $0}' file
\x27
打印单引号。
对于第二个记录,它将在开始时打印ORS
(设置为逗号),然后打印引用的行。
<强>输出:强>
'a111111','b222222','c333333','d444444','e555555'
答案 1 :(得分:1)
另一种方法:
sed -r 's/^|$/\x27/g' file | paste -sd,
sed在每行的开头和结尾添加单引号,并且粘贴将该行与逗号连接起来
或者,为每行打印一个逗号,当你完成备份1个字符并用空格覆盖最后一个逗号时:
awk '{printf "'\''%s'\'',", $0} END {printf "\b \n"}' file