![](/img/trans.png)
[英]Extract word after a specific word of HTML using linux command/srcipting
[英]I wanted to extract a specific word from a file using linux commands
我想使用 linux 命令从文件中提取特定单词。 以下是我的文件内容
DVC Version Tag: Engine-4.0.1
我想从文件的上述内容中提取“Engine-4.0.1”到一个变量中。 我试过了
sed -n '/Engine/p' dvc_version_text.txt
这将打印整行。 我预期的 output 仅打印Engine-4.0.1
您可以使用下面给出的命令。 grep "Engine-4.0.1" 文件名 | awk -F":" '{打印 $2}'
awk
下面应该可以工作:
awk -F ': ' '/^DVC Version Tag/{print $2}' file.txt
Output:
Engine-4.0.1
我将您的文本放入我自己的 test.txt 文件中,并且能够从中获得您所需要的内容
sed 's/[^:]*: *//' test.txt
-> Engine-4.0.1
如果您的文件包含许多引擎(不同版本)并且您希望将它们全部提取,您可以尝试:
<filename grep -i Engine | awk -F":" '{print$2}'
bash
X=$( echo DVC Version Tag: Engine-4.0.1 | cut -d ' ' -f4 )
X=$( echo DVC Version Tag: Engine-4.0.1 | cut -d ':' -f2 )
由于根据您的定义,文件的内容仅包含这一行,因此您可以简单地执行
awk '{ print $NF }' <dvc_version_text.txt
或者
cut -d ' ' -f 4 <dvc_version_text.txt
或者
grep -oE 'Engine.+' <dvc_version_text.txt
假设:
Engine
开头的单词。Engine
。那你试试:
sed -En 's/.*(Engine.*)/\1/p' dvc_version_text.txt
如果所需的字符串总是出现在最后一个空格之后,则此sed
将起作用
$ sed 's/.*\s//' input_file
Engine-4.0.1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.