如何将单引号添加到文件中的特定列,并与同一文件中的其他列连接。
示例:file1.txt包含大约10列,将单引号添加到$ 6列,并使用$ 9列连接。
我尝试过:awk -F '|' '{print $6 ":" $9 }' file1.csv
答案 0 :(得分:1)
我想你想要这个:
echo "1|2|3|4|5|6|7|8|9" | awk -F'|' '{print "\047" $6 "\047" $9}'
'6'9
或者,使用变量q
来保存引号:
echo "1|2|3|4|5|6|7|8|9" | awk -F'|' '{q="\047"; print q $6 q $9}'
或者,如果您更喜欢hex:
echo "1|2|3|4|5|6|7|8|9" | awk -F'|' '{q="\x27"; print q $6 q $9}'
或者,您可以将报价作为变量传递:
echo "1|2|3|4|5|6|7|8|9" | awk -F'|' -v q="'" '{print q $6 q $9}'
或者,稍短:
echo "1|2|3|4|5|6|7|8|9" | awk -F'|' -v q=\' '{print q $6 q $9}'
答案 1 :(得分:0)
您也可以使用sed
echo "..." | sed -E "s/([^\|]*\|){5}([^\|]*)\|([^\|]*\|){2}([^\|]*).*/'\2'\4/"
如果字段9始终是最后一个
echo "..." | sed -E "s/([^\|]*\|){5}([^\|]*)\|([^\|]*\|){2}(.*)/'\2'\4/"