linux – Shell脚本从所有文件中提取2个值?
发布时间:2020-12-13 23:08:36 所属栏目:Linux 来源:网络整理
导读:我有一个充满这样的文件的目录: [Location]state=Californiacity=Palo Alto[Outlet]id=23manager=John Doe 我想写一个小脚本,为每个文件输出一行,如下所示: John Doe,Palo Alto 我怎么做?我怀疑有些grep和循环.到目前为止,我有: #!/bin/bashecho Manager
我有一个充满这样的文件的目录:
[Location] state=California city=Palo Alto [Outlet] id=23 manager=John Doe 我想写一个小脚本,为每个文件输出一行,如下所示: John Doe,Palo Alto 我怎么做?我怀疑有些grep和循环.到目前为止,我有: #!/bin/bash echo Manager,City > result.txt for f in *.config do cat "$f" | grep manager= >> result.txt cat "$f" | grep city= >> result.txt done 但这当然是不完整的,因为grep在自己的行上返回整行,我只想在第一个=符号后面的部分. 解决方法echo Manager,City > result.txt for f in *.config; do manager=$(awk -F= '$1=="manager" {print $2}' "$f") city=$( awk -F= '$1=="city" {print $2}' "$f") echo "$manager,$city" done >> result.txt awk -F =使用等号作为字段分隔符,然后检查所需的变量($1)并打印它们的值($2). $(cmd)捕获命令的输出并产生可分配给两个变量$manager和$city的字符串. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |