我有以下文件:
…
LINK=dummy 172.17.100 => 10.218.11 [PATH=/etc]
FILE=hosts 172.17.100 => 10.218.11 [PATH=/etc]
FILE=network 172.17.100 => 10.218.11 [PATH=/etc/sysconfig]
LINK=empty 172.17.100 => 10.218.11 [PATH=/etc]
FILE#TEST 172.17.100 => 10.218.11 [PATH=/etc/sysconfig]
……
仅当行以单词开头时如何打印第一个字段和第五个字段FILE
?
该单词FILE
可以直接位于行的开头,也可以位于行中的空格或 TAB 之后。
我期望得到的示例
FILE=hosts [PATH=/etc]
FILE=network [PATH=/etc/sysconfig]
FILE#TEST [PATH=/etc/sysconfig]
我尝试了这个 awk 但不起作用
awk '$1 == "^[[:blank:]]*FILE*" && '{print $1" "$5}' file
答案1
awk '$1 ~ /^FILE/ { print $1 " " $5 }'
您的方法不起作用,因为==
检查字面相等性,而不是正则表达式;你需要~
为此使用。
答案2
尝试这样做:
awk '/^ *FILE=/{print $1, $5}'
或者
awk '/^[[:blank:]]*FILE=/{print $1, $5}'