我想要一个 awk 或 sed 命令来打印正则表达式后的单词。
我想找到一个 WORD 之后的 WORD,而不是看起来相似的 WORD。
文件看起来像这样:
somethingsomething
X-Windows-Icon=xournal
somethingsomething
Icon=xournal
somethingsomething
somethingsomething
我想要来自“Icon=xournal”的“xournal”。这是我到现在为止已经走了多远。我也尝试过 AWK 字符串,但也不成功。
cat "${file}" | grep 'Icon=' | sed 's/.*Icon=//' >> /tmp/text.txt
但我得到了两个,所以文本文件给出了两个我不想要的 xournal。
最佳答案
使用 ^
将模式锚定在行的开头。您甚至可以直接在 sed 中执行 grepping:
sed -n '/^Icon=/ { s/.*=//; p; }' "$file" >> /tmp/text.txt
您也可以使用 awk,我认为它读起来更好一些。使用 =
作为字段分隔符,如果字段 1 是 Icon
则打印字段 2:
awk -F= '$1=="Icon" {print $2}' "$file" >> /tmp/text.txt
关于sed - 我如何在正则表达式之后打印单词而不是相似的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3672139/