例如,如果我有一个包含多行和列的文件,是否可以提取特定的行和列?
例如
1 4/8/2016 4/7/2016 4/6/2016
2 john_doe jane_doe sarah_test
3 26 45 20
4 4/8/2015 6/8/2016 8/26/2016
5 5:15 2:30 6:00
所需输出
1 4/8/2016 4/7/2016 4/6/2016
2 john_doe jane_doe sarah_test
4 4/8/2015 6/8/2016 8/26/2016
答案1
是的,可以拉出特定的行和列。
这就是回答您提出的确切问题的结论。
不过,让我提供一些一般性建议:
awk
建立在一个简单的条件——动作模型之上。
提供一个条件,然后提供与该条件相符的操作。
假设条件是“第三行”,操作是“打印该行的前两个字段”。这看起来像:
awk 'NR==3 {print $1, $2}'
假设条件是“行包含字母‘a’”,操作是“打印整行”。
awk '/a/ {print}'
由于打印整行是一个常见的操作,因此它是默认操作:
awk '/a/'
假设条件是“每一行”,操作是“打印第二个字段”。您可以省略条件:
awk '{print $2}'
欲了解更多,阅读正确的教程。
答案2
awk '$2 ~ /^[abd]$/ { print $2, $3, $4 }'
对于第二个字段为a
、b
、 或 的行d
,打印第二个、第三个和第四个字段。
您根本没有具体说明您的选择标准,因此我不得不根据您提供的输入和输出之间的差异进行猜测。