【发布时间】:2014-04-04 17:02:59
【问题描述】:
我有一个输入文件如下:
some lines with quote and :
AGE:23
some lines with quote and :
NAME:2,0,"My Name Is"
some lines with quote and :
其实我是用这段代码从文件中提取信息的:
age="$(cat "$file" | awk -F ':' '/AGE:/ { print $2 }')"
name="$(cat "$file" | awk -F '"' '/NAME:/ { print $2 }' )"
echo "age: $age"
echo "name: $name"
输出:
age: 23
name: My Name Is
我正在寻找一种比两次运行 cat 和 awk 更好的方法。我有搜索在一条 cat/awk 行中进行,但无法弄清楚,在这种情况下不合适吗?谁能给我一个更好的方法吗?
提前致谢
【问题讨论】:
-
您可以从不使用
cat开始。只需将文件名放在awk命令的末尾:awk [OPTIONS] SCRIPT files...(例如:age="$(awk -F ':' '/AGE:/ { print $2 }' "$file")" -
@rici 谢谢你指点我这个
标签: string bash file variables awk