如果我有一个文件,其中第一列是一组单词:
sad
dog
hand
paper
computer
rabbit
cow
我希望得到列的字长,检查它是偶数还是奇数,如果将它分配给数组,如果是奇数,则分配给一个单独的数组。
这就是我所拥有的,至少在语法中它是错误的:
awk '{if (print length($1)%2 = 0 ) x[NR]=$1; else y[NR]=$1;}'
答案 0 :(得分:3)
这样的事情可能是你的出发点:
$ cat tst.awk
{
if (length($0)%2) {
odd[++numOdd] = $0
}
else {
even[++numEven] = $0
}
}
END {
for (i=1; i<=numOdd; i++) {
print "ODD:", odd[i]
}
for (i=1; i<=numEven; i++) {
print "EVEN:", even[i]
}
}
$ awk -f tst.awk file
ODD: sad
ODD: dog
ODD: paper
ODD: cow
EVEN: hand
EVEN: computer
EVEN: rabbit
但是你可能会遇到100%错误的方向,无论你想解决什么问题,所以我建议你编辑你的问题以提供更多信息。
答案 1 :(得分:0)
你可以这样做
awk '{if (length($1)%2) odd[NR]=$1; else even[NR]=$1}'
但是,也许这不是你需要做的。