如何将最后两个awk命令合并为一个。
cut -d':' -f1,2,3,4,5 /etc/passwd |awk -F: '{print $5,$1}' |awk 'NF>=4'
我看到了这个问题,但我无法弄清楚如何将其应用于这个问题。
答案 0 :(得分:2)
这是你的命令所做的。
/etc/passwd
分隔的:
5
1
和字段:
4
字段。我将如何做到这一点:
awk -F: '{$0=$5" "$1} split($0,a," ")>3' /etc/passwd
-F:
将字段分隔符设置为:
$0=$5" "$1
使用字段5
和1
来重新创建行
split($0,a," ")
使用空格分割线,split的输出是字段数
split($0,a," ")>3
测试是否有超过3
个字段。 (我们也可以使用>=4
答案 1 :(得分:1)
这是否有效:
cut -d':' -f1,2,3,4,5 /etc/passwd|awk -F: '
{split($5, a, " "); split($1, b, " ");}
length(a) + length(b) >= 4 { print $5, $1}'
或者根据@shellter的说法:
awk -F: '{split($5, a, " "); split($1, b, " ");}
length(a) + length(b) >= 4 { print $5, $1}' /etc/passwd
由于split返回了分割术语的数量,我们可以进一步简化:
awk -F: 'split($5" "$1, a, " ") >=4 {print $5, $1}' /etc/passwd