簡體   English   中英

grep可以只顯示我想要的結果

[英]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

使用?=; 會以字符串開頭; 但是使用>您可以從索引之后開始。 類似地,指定結束字符串標簽。

建議在這里閱讀其他內容

您需要使用先行和后向正則表達式

grep -oP '(?<=;)\\w*(?=")'

我認為您可以在regexr周圍學習有關正則表達式的更多信息。 簽出他們的備忘單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM