[英]Can grep show only result i want
我有這樣的數據
tatusx2.atc?beginnum=0;8pctgRB Mwdf fgEio"text1"text4"text
tatqsx3.atc?beginnum=1;8pctgRBwsaNezxio"text2
tatssx4.atc?beginnum=2;8pctgsvMALNejkio"data2
tatksx4.atc?beginnum=1;8pctgxdfALNebfio"text3
tatzsx5.atc?beginnum=3;8pwerRBMALNetior"datac
如何只獲得之間的數據; 和“我已經嘗試過grep -oP ';.*?"' file
並得到輸出:
;8pctgRBMwdffgEio"
;8pctgRBwsaNezxio"
;8pctgsvMALNejkio"
;8pctgxdfALNebfio"
;8pwerRBMALNetior"
但是我想要的輸出是:
8pctgRB Mwdf fgEio
8pctgRBwsaNezxio
8pctgsvMALNejkio
8pctgxdfALNebfio
8pwerRBMALNetior
編寫所需表達式的一種更具可讀性的方法是:
grep -oP '(?<=;).*(?=")' file
並會為您帶來理想的結果。 PERL正則表達式顯然是實驗性的,但是某些模式可以正常工作。
使用了以下選項:
-o --only-matching to the print only the matched parts of a matching line
-P --perl-regexp
使用?=;
會以字符串開頭; 但是使用>
您可以從索引之后開始。 類似地,指定結束字符串標簽。
建議在這里閱讀其他內容 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.