Unix AWK COLRM问题

Unix AWK COLRM问题,unix,awk,Unix,Awk,为uni做了一些UNIX命令行工作,我一直在使用AWK删除列中的最后一行。我试过: awk '{colrm [$14]}' /Users/Jak/Documents/colrmeg.txt 但打开文件后,最后一列$14仍然存在。谢谢你的帮助,干杯 原始脚本什么也没做。。。解释是我们匹配每一行,然后访问一个名为colorm的关联数组,第14列中的任何内容都作为索引。。。如果我们在--lint开关上使用gawk,我们就可以了解出现问题的原因: $ echo foo | gawk --lint '{

为uni做了一些UNIX命令行工作,我一直在使用AWK删除列中的最后一行。我试过:

awk '{colrm [$14]}' /Users/Jak/Documents/colrmeg.txt

但打开文件后,最后一列$14仍然存在。谢谢你的帮助,干杯

原始脚本什么也没做。。。解释是我们匹配每一行,然后访问一个名为colorm的关联数组,第14列中的任何内容都作为索引。。。如果我们在--lint开关上使用gawk,我们就可以了解出现问题的原因:

$ echo foo | gawk --lint '{colrm [$14]}'
gawk: cmd. line:1: warning: statement may have no effect
gawk: cmd. line:1: (FILENAME=- FNR=1) warning: reference to uninitialized field `$14'
gawk: cmd. line:1: (FILENAME=- FNR=1) warning: reference to uninitialized element `colrm[""]'
gawk: cmd. line:1: (FILENAME=- FNR=1) warning: subscript of array `colrm' is null string
如果我们要删除第14列,并且如果我们是以空格分隔的。。。那么(我能想到的)最简单的方法就是使用cut

cut --complement -d ' ' -f 14 /Users/Jak/Documents/colrmeg.txt
如果我们热衷于使用awk

LC_ALL=C awk 'NR < 14 { print; next } { printf("%s", $1); for (i=1; i<14; i++) printf("%s%s", OFS, $i); print "" }' /Users/Jak/Documents/colrmeg.txt

LC_ALL=C awk'NR<14{print;next}{printf(“%s”,$1);用于(i=1;i
colrm
不是一个命令,你是在使用数组。不确定你在这里做什么。最好用一些示例输入更新。
colrm
是一个命令,可以在shell提示符下使用。不是
awk
的一部分。你为什么在这里涉及
awk
?啊,好吧,我现在明白了。我对这类ta比较陌生因为我们被告知这是一个“AWK讲座”,所以我假设所有的任务都与AWK有关。那么简单地删除最后一列的语法是什么呢?干杯“我一直在删除列中的最后一行”这是什么意思?删除最后一列*,我很抱歉