放棄所有的休息我有如下形式的文件:在一個文本文件中提取兩個詞之間的文本,在shell腳本
blablabla var="value_var1" blabla
blablabla var="value_var2" blabla
等。我想獲得一個文本文件,如:
value_var1
value_var2
...
任何想法?
在此先感謝!
放棄所有的休息我有如下形式的文件:在一個文本文件中提取兩個詞之間的文本,在shell腳本
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
或:
grep -oP '"\K[^" ]*' filename
Perl的變種
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
隨着sed
您可以刪除文本到第一個"
和第二個後"
與:
sed -e 's/.*"//;s/".*//' <infile> outfile
這比cut
版本稍微複雜一些,但如果它以不適當的方式處理某些行,它可能會更容易修復。