検索パターンを省略してgrepの結果を表示する方法


0

例えば:

file.txtは含まれています

this is a string
this is another string

grep "this is" file.txtが出力されます。

 a string
 another string

行が検索パターンとまったく一致しない場合は、完全に表示されるのか、まったく表示されないのか。 grepを特に使う必要がありますか?
mattdm

簡単な方法:grepを使わない
Xen2050

@mattdm:私の編集した質問を見る
user3671607

それは答えません どちらか 私の質問
mattdm

回答:


1

あなたがGNU grepを持っているのなら、これを使って (?<=) "後ろを見て" すべき 作業:

$ echo -e "this is a string\nthis is another string"
this is a string
this is another string

$ echo -e "this is a string\nthis is another string" | grep -Po '(?<=this is).+'
 a string
 another string

一部の正規表現の先読み背後にある情報 ここに


またはを使って sed

sed 's/this is//'

または

sed -n 's/this is//p'

はい、それはトリックを行います。
user3671607

これは行頭のパターンでのみ機能します。それが意図されているのか明確ではありません。 (しかし sed 動作します。)
mattdm

@mattdm grepコマンドでは、 "this is"という行の途中に表示され、 "this is"を超えた文字だけが返されます。 echo -e "now this is a string" | grep -Po '(?<=this is).+' "を返します a string msgstr "たぶんあなたのgrepは少し違うでしょう。またオプションに注意してください -P, --perl-regexp PATTERNをPerlの正規表現として解釈します(PCRE、下記参照)。これは非常に実験的であり、grep -Pは未実装の機能について警告するかもしれません。
Xen2050
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.