这适用于命令行:
awk -F, '$5>1900 {print $2}' presidents.csv
但我不知道如何在awk脚本中执行此操作。 这是我到目前为止在剧本中尝试过的。
BEGIN {FS=","}
if ($5>1900)
{print $2}
答案 0 :(得分:5)
你用单引号的东西:
awk -F, '$5>1900 {print $2}' presidents.csv
是一个AWK脚本。只需将其粘贴在文件中:
BEGIN {FS=","}
$5>1900 {print $2}
答案 1 :(得分:4)
AWK需要pattern
搜索,并在找到模式时需要action
。 pattern
或action
可以省略,但不能同时省略。
在您的情况下,首先是语法错误,因为您未将action
括在大括号内({}
),因此这将导致AWK同时考虑pattern
和{ {1}}被省略了。我们可以在AWK中将关系表达式用作action
,因此您可以使用关系表达式而不是使用pattern
语句,如下所示。
if
答案 2 :(得分:1)
AWk脚本就像,
#!/usr/bin/awk
BEGIN {FS=",";}
{
if ($5>1900)
{print $2;}
}
也就是说,你需要将if条件括在花括号中。
答案 3 :(得分:1)
如果您想要运行awk命令的shell脚本,可以将以下内容放入文件中:
#!/bin/bash
awk -F, '$1>1900 {print $2}' $1
为了实现脚本,您可以运行:
chmod +x ./script_file_name_here
然后你可以运行
./script_file_name_here presidents.csv
并发生同样的事情。