Bash 使用awk在文件中搜索
我需要像散列一样搜索文件。想知道awk是否是正确的解决方案 输入示例:Bash 使用awk在文件中搜索,bash,awk,Bash,Awk,我需要像散列一样搜索文件。想知道awk是否是正确的解决方案 输入示例: bla 123.123.123.0 # This line should be a comment ble www.ble.com bli <random whitespace> ::1 blo anything 和搜索(ble) 我希望这对于awk 编辑:改进了输入格式的描述不太清楚格式。。。这个怎么样 $ awk '/^[^#]/{print $1}/www/{print $2}' in
bla 123.123.123.0
# This line should be a comment
ble www.ble.com
bli <random whitespace> ::1
blo anything
和搜索(ble)
我希望这对于awk
编辑:改进了输入格式的描述不太清楚格式。。。这个怎么样
$ awk '/^[^#]/{print $1}/www/{print $2}' input.txt
bla
ble
www.ble.com
bli
blo
或“两种不同的输出:
/^[^#]/ {
k[$1]++
}
/www/ {
w[$2]++
}
END {
print "keys:"
for (x in k)
print "\t"x
print "urls:"
for (x in w)
print "\t"x
}
输出:
$ awk -f keys.awk input.txt
keys:
bla
ble
bli
blo
urls:
www.ble.com
这样的一种方式(要求不太清楚):
获取密钥:
kent$ grep -oP "^\w+(?= )" file
bla
ble
bli
blo
如果你想让它们和awk排成一行
kent$ awk 'NR!=2{printf $1" "}' test
bla ble bli blo
您期望的确切输出是什么?
$ awk '!/^#/{a[$1]=$2}END{print a[x];}' x='ble' file
www.ble.com
kent$ grep -oP "^\w+(?= )" file
bla
ble
bli
blo
kent$ awk 'NR!=2{printf $1" "}' test
bla ble bli blo