我的日志文件中有以下几行:
<ROW USER_GID="TEST 1" FLOW="Norm" SEQUENCE="9"/>
<ROW USER_GID="TEST 2" FLOW="Norm" SEQUENCE="2"/>
<ROW USER_GID="TEST 3" FLOW="Norm" SEQUENCE="2"/>
USER_GID
我正在尝试提取每一行中的值。我可以使用grep
/awk
或sed
命令完成相同的任务吗?
在上述情况下,输出应返回:
TEST 1
TEST 2
TEST 3
答案1
虽然您可以通过 执行此操作sed
,但您最好使用 XML 解析器来获取适合您的行。
也就是说,您可以使用以下 sed 命令,假设所有数据都采用相同的格式。
sed -n 's/.*USER_GID="\([^"]*\)".*/\1/p' log_file
答案2
通过下面的 awk 命令完成
awk -F '"' '/USER_GID/{print $2}' filename
输出
TEST 1
TEST 2
TEST 3