2014-09-29 72 views

回答

0

你可以試試下面的sed命令,

sed 's/.*"\(.*\)".*/\1/' infile > outfile 

如果你想獲得的前述空間也然後使用下面的正則表達式。

sed 's/^\(*\).*"\(.*\)".*/\1\2/g' infile > outfile 
2

你可以試試這個剪切命令:

cut -d \" -f 2 filename 

或:

grep -oP '"\K[^" ]*' filename 
0

Perl的變種

  • 只會匹配VAR =」 東西和不VAR2 =」 其他」
  • 將在線路
perl -nE 'say $1 while m/\bvar\s*=\s*"(.*?)"/g' 

從下一個輸入相匹配多次出現

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 
0

隨着sed您可以刪除文本到第一個"和第二個後"與:

sed -e 's/.*"//;s/".*//' <infile> outfile 

這比cut版本稍微複雜一些,但如果它以不適當的方式處理某些行,它可能會更容易修復。

相關問題