我有一个很大的 CSV 文件。基本上我想做的是只显示前 5 列(我可以),但我也只想显示前 10 行,这是我无法弄清楚的。现在这是我拥有的 .awk 文件脚本:
"BEGIN {FS = ","}
{print $1", " $2", " $3", " $4", " $5}"
在 Tera Term 中,这是我使用的命令,它会显示每行的前 5 列: $awk -f 示例.awk 示例.csv
我已经尝试了几种使用 NR<=11 的方法,但在尝试在 Tera Term 上运行时不断出现错误消息。
请帮忙!
最佳答案
尝试:
awk -F, '{print $1,$2,$3,$4,$5} NR==10{exit}' OFS=', ' file.csv
[注意 awk 代码在单引号中,而不是双引号。这是防止 shell 将 $1
等误解为 shell 变量并扩展它们所必需的。]
工作原理
-F,
告诉 awk 使用,
作为输入的字段分隔符。这等同于BEGIN {FS = ","}
,但更简洁。print $1,$2,$3,$4,$5
告诉 awk 打印前五列。 (请参阅下文了解为什么此版本中不需要", "
字符串。)NR==10{exit}
在第十行告诉 awk 退出。OFS=', '
告诉 awk 使用逗号空格作为输出的字段分隔符。此设置使原始代码中的大部分引用变得不必要。
关于bash - 如何只选择我的 AWK 脚本中的前 10 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37097272/