我正在使用外壳程序,我有一个包含3列的文件,我想在2和3列中搜索两个不同的字符串。我认为awk会很有用,但我找不到适当的方法。
输入文件:
0000: 3.302295 22.508675
0001: 2.913368 14.100854
0002: 3.530211 19.428879
0003: 3.239985 16.981230
0004: 3.088717 25.245083
0005: 3.156010 3.785273
我想给两个搜索字符串,例如3.30和22.5,并在第一行给出输出
0000:3.302295 22.508675
谢谢
这个怎么样?
#!/bin/bash
if [ ! $# -eq 2 ]; then
echo "Wrong number of parameters"
exit
fi
awk -v str1=$1 -v str2=$2 '
{
if (match($2, "^" str1) && match($3, "^" str2)) {
print $0;
}
}'
例子:
./search.sh 3.175399 21.913555 < input.txt
我假设上面的脚本名为search.sh,而您的输入存储在input.txt中。
更新:按照glenn jackman的建议添加了正则表达式锚
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句