提取文本文件中两个单词之间的文本,放弃shell脚本中的所有剩余内容
我有一份表格文件:提取文本文件中两个单词之间的文本,放弃shell脚本中的所有剩余内容,shell,sed,Shell,Sed,我有一份表格文件: blablabla var="value_var1" blabla blablabla var="value_var2" blabla 等等。我想获得如下文本文件: value_var1 value_var2 ... 有什么想法吗 提前谢谢 您可以尝试下面的sed命令 sed 's/.*"\(.*\)".*/\1/' infile > outfile 如果您还想获得前面的空格,请使用下面的正则表达式 sed 's/^\( *
blablabla var="value_var1" blabla
blablabla var="value_var2" blabla
等等。我想获得如下文本文件:
value_var1
value_var2
...
有什么想法吗
提前谢谢 您可以尝试下面的sed命令
sed 's/.*"\(.*\)".*/\1/' infile > outfile
如果您还想获得前面的空格,请使用下面的正则表达式
sed 's/^\( *\).*"\(.*\)".*/\1\2/g' infile > outfile
您可以尝试此剪切命令:
cut -d \" -f 2 filename
或:
perl变体
- 将只匹配var=“某物”,而不匹配var2=“其他”
- 将匹配行中的多个事件
blabl somevar="some" abla var="value_var1" blabla var = "value2" blabal
blablabla var="value_var2" blabla
产生
value_var1
value2
value_var2
从任何东西获取值=“值”下一个grep将起作用
grep -oP '=\s*"\K(.*?)(?=")'
对于相同的输入打印
some
value_var1
value2
value_var2
使用
sed
可以删除第一个“
之前和第二个”
之后的文本,方法是:
sed -e 's/.*"//;s/".*//' < infile > outfile
sed-e的s/*/;s/*/'outfile
这比cut
版本要复杂一些,但如果它以不适当的方式处理某些行,则可能更容易修复
some
value_var1
value2
value_var2
sed -e 's/.*"//;s/".*//' < infile > outfile