目前我正在使用一个脚本,我在其中调用AWK
/usr/bin/nawk -f rst.awk file1 file2
和rst.awk看起来像
cat rst.awk
{ split($2,a,/\./); curr = a[1]*10000 + a[2]*100 + a[3] }
NR==FNR { prev[$1] = curr; next }
($1 in prev) && (curr > prev[$1])
在这种情况下,我需要确保每次都检查rst.awk是否有以上内容来运行脚本。
我们可以在脚本中编写rst.awk内容吗? 我自己尝试但没有运气。
cat te.sh
/usr/bin/nawk -f
{ split($2,a,/\./); curr = a[1]*10000 + a[2]*100 + a[3] }
NR==FNR { prev[$1] = curr; next }
($1 in prev) && (curr > prev[$1])
file1 file2
./te.sh
/usr/bin/nawk: no program filename
./te.sh: line 2: syntax error near unexpected token `$2,a,/\./'
./te.sh: line 2: `{ split($2,a,/\./); curr = a[1]*10000 + a[2]*100 + a[3]}'
答案 0 :(得分:4)
你需要te.sh来包含以下任何一个:
#!/usr/bin/nawk -f
{ split($2,a,/\./); curr = a[1]*10000 + a[2]*100 + a[3] }
NR==FNR { prev[$1] = curr; next }
($1 in prev) && (curr > prev[$1])
或
/usr/bin/nawk '
{ split($2,a,/\./); curr = a[1]*10000 + a[2]*100 + a[3] }
NR==FNR { prev[$1] = curr; next }
($1 in prev) && (curr > prev[$1])
' "$@"
我强烈推荐后者。无论哪种方式,您都可以将其作为te.sh file1 file2
执行。
btw"需要帮助awk"只是你可以选择的最糟糕的主题线,并没有比#34;恐龙闻起来有趣"对于将来寻找类似问题答案的人来说,或者同样没用。选择捕获问题的主题行,例如: "从shell脚本执行awk脚本会产生语法错误"。