我正在编写一个脚本来从外部文件中收集值。在此过程中,我发现自己在使用以下sed命令时将结果限制为一行。
以下命令使用" value ="搜索所有单词;通过收集下一个文本,用"#"
忽略行NUM=$(sed -n -e '/#/!s/^.*value=//p' $LOGFILE)
我发现了其他的命令变体,但没有一个允许使用这些命令行的情况下使用单词。
任何做这个的灵魂只捕获最后一行,但仍然忽略包含"#"?
的行可选:您是否可以调整此命令以仅捕获数字,忽略线上的单词?
答案 0 :(得分:1)
以下3种方式:
如果您只需要sed:
sed -n '/value=/h; ${g; s/value=//p}' file
如果您可以使用其他工具:
tac file | sed -n '/value=/{s///p;q}'
或者,这很可读:
awk -F= '$1 == "value" {value = $2} END {print value}' file