我有一个包含如下数据的文件。
appid=TestApp
version=1.0.1
我们要解析文件并捕获分配给appid字段的值。
我尝试过使用awk命令,如下所示
awk '/appid=/{print $1}' filename.txt
然而它输出整行
appid=TestApp
但我们只需要
TestApp
请告诉我如何使用awk / grep / sed shell命令实现此目的。
答案 0 :(得分:4)
您需要更改字段分隔符:
awk -F'=' '$1 ~ /appid/ {print $2}' filename.txt
或完全匹配
awk -F'=' '$1 == "appid" {print $2}' filename.txt
输出
TestApp
答案 1 :(得分:3)
大约有20种不同的方法可以做到这一点但是当你在文件中有name = value语句来简单地构建这些赋值的数组然后只打印你关心的任何内容时,这通常是一个好主意。关于使用它的名字,例如:
$ cat file
appid=TestApp
version=1.0.1
$
$ awk -F= '{a[$1]=$2} END{print a["appid"]}' file
TestApp
$ awk -F= '{a[$1]=$2} END{print a["version"]}' file
1.0.1
$ awk -F= '{a[$1]=$2} END{for (i in a) print i,"=",a[i]}' file
appid = TestApp
version = 1.0.1
答案 2 :(得分:0)
如果你已经在shell中,那么只需获取文件即可让你得到你想要的东西。
. filename.txt
echo $appid