awk第一行无法删除列
我正在尝试使用以下代码从文件的所有行中删除26号以外的列:awk第一行无法删除列,awk,Awk,我正在尝试使用以下代码从文件的所有行中删除26号以外的列: awk '{ FS = ";" ; for(i=1;i<NF;i++) if (i<26) printf $i FS}{print $26}' awk'{FS=“;”;for(i=1;i这是因为您在每一行上设置了FS,而它应该位于BEGIN{}块中(或者作为参数在外部,就像其他答案正确建议的那样): 4列的示例 示例文件: $ cat a 1col1;col2;col3;col4;col5;col6 2col1;col2;
awk '{ FS = ";" ; for(i=1;i<NF;i++) if (i<26) printf $i FS}{print $26}'
awk'{FS=“;”;for(i=1;i这是因为您在每一行上设置了FS
,而它应该位于BEGIN{}
块中(或者作为参数在外部,就像其他答案正确建议的那样):
4列的示例
示例文件:
$ cat a
1col1;col2;col3;col4;col5;col6
2col1;col2;col3;col4;col5;col6
3col1;col2;col3;col4;col5;col6
以前的代码:
$ awk '{FS=";"; for(i=1;i<NF;i++) if (i<4) printf $i FS}{print $4}' a
2col1;col2;col3;col4
3col1;col2;col3;col4
这是因为您在每一行上都设置了FS
,而它应该位于BEGIN{}
块中(或者作为参数在外部,就像其他答案正确建议的那样):
4列的示例
示例文件:
$ cat a
1col1;col2;col3;col4;col5;col6
2col1;col2;col3;col4;col5;col6
3col1;col2;col3;col4;col5;col6
以前的代码:
$ awk '{FS=";"; for(i=1;i<NF;i++) if (i<4) printf $i FS}{print $4}' a
2col1;col2;col3;col4
3col1;col2;col3;col4
@费多尔基是对的
但您也可以使用此设置字段分隔符:
awk -F";" '{for(i=1;i<NF;i++) if (i<26) printf $i FS}{print $26}' file
awk-F”;“{for(i=1;i@fedorqui是对的
但您也可以使用此设置字段分隔符:
awk -F";" '{for(i=1;i<NF;i++) if (i<26) printf $i FS}{print $26}' file
awk-F”;“{for(i=1;i你可以试试这个awk
awk -F';' 'NF>26{NF=26}1' OFS=';' yourfile
您可以试试这个awk
awk -F';' 'NF>26{NF=26}1' OFS=';' yourfile