Linux awk在特定列周围添加单引号,并与其他列合并
如何向文件中的特定列添加单引号,并与同一文件中的其他列合并 示例:file1.txt大约有10列,在$6列中添加单引号,在$9列中添加concat 我试过:Linux awk在特定列周围添加单引号,并与其他列合并,linux,shell,unix,awk,Linux,Shell,Unix,Awk,如何向文件中的特定列添加单引号,并与同一文件中的其他列合并 示例:file1.txt大约有10列,在$6列中添加单引号,在$9列中添加concat 我试过:awk-F'|''{print$6:“$9}”file1.csv我想你想要这个: 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="\0
awk-F'|''{print$6:“$9}”file1.csv
我想你想要这个:
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}'
或者,如果您喜欢十六进制:
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}'
你也可以使用sed
echo "..." | sed -E "s/([^\|]*\|){5}([^\|]*)\|([^\|]*\|){2}([^\|]*).*/'\2'\4/"
如果字段9始终是最后一个
echo "..." | sed -E "s/([^\|]*\|){5}([^\|]*)\|([^\|]*\|){2}(.*)/'\2'\4/"
如果您向我们展示您已经尝试过的内容,您将得到更好、更有用的答案。我在下面尝试过,我想在$6左右添加单引号,即第6列示例:awk-F'{print$6:“$9}”file1.csvawk-F'{print$6:“$9}”file1.csvIt不清楚您希望在哪里添加单引号。显示一些示例输入和相应的所需输出。可以使用-v将变量设置为单引号,也可以在打印时使用\047作为八进制版本