Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux awk在特定列周围添加单引号,并与其他列合并_Linux_Shell_Unix_Awk - Fatal编程技术网

Linux awk在特定列周围添加单引号,并与其他列合并

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

如何向文件中的特定列添加单引号,并与同一文件中的其他列合并

示例: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="\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作为八进制版本