我有一个格式如下的文件 tmp.info
:
foo..............bar
alligator........bear
cat..............dog
我想在 bash 中创建一个小的包装命令,当第一个字符串提供给函数时返回行中的第二个字符串。例如,像这样的东西:
#!/bin/bash
get_from_info_file() {
cat $1 | grep $2 | grep ????????
}
echo `get_from_info_file tmp.info alligator`
应该返回:
>>> bear
最优雅的方法是什么?
最佳答案
你可以像这样使用 awk:
get_info_from_file() {
awk -F'\\.+' -v search="$2" '$1 == search { print $2 }' "$1"
}
这会将字段分隔符设置为一个或多个 .
并使用传递给函数的第二个参数设置变量 search
。如果第一个字段 $1
等于搜索字符串,则打印第二个字段。
使用问题中的文件进行测试:
$ get_info_from_file tmp.info alligator
bear
关于bash - 从文件中的行返回数据的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29752222/