5

grep または egrep を使用して、セミコロン「;」で終わるファイル内のすべての行を表示するコマンドを作成するにはどうすればよいですか? またはピリオド「.」キャラクター。

4

5 に答える 5

11

grep(および)を使用するとegrep、ドル記号($)は行の終わりに一致し、キャレット(^)は行の先頭に一致します。したがって、たとえば、「魚」という単語を正確に含み、他の文字を含まない行を一致させたい場合は、次のように使用できます。

grep '^fish$'

bashが面白いことをしないように、一重引用符を使用して検索式をラップすることが重要です。

したがって、質問に答えるには、検索パターンを使用して、または文字の後に行末文字'[.;]$'を一致させる必要があります。これをテストファイルの例として使用しています。.;

$ cat testfile 
one
two;
three.
four:

そしてここに結果があります:

$ grep '[.;]$' testfile 
two;
three.

行末にも空白を許可する場合は、次のパターンを使用します。これは、または'[.;][ \t]*$'の後にある任意の数のスペースまたはタブ文字と一致します。.;

于 2012-10-03T15:00:27.270 に答える
3

なし-E:

grep '\.\|;$' filename
于 2012-10-03T11:55:52.913 に答える
3

これはそれを行う必要があります:

$ grep -E '(;|\.)$'

この-Eスイッチは、正規表現モードを有効にします。この式は、セミコロンまたはピリオドで終わる行に単純に一致します。

注:私はこれをテストしていません。

于 2012-10-03T11:54:31.860 に答える
2

sed付き:

sed -rn '/(\.|;)$/p'

awkで

awk '/(\.|;)$/'
于 2012-10-03T12:15:02.477 に答える
2

3つの方法:これらのどれも私にとってはうまくいきました。

1:

grep '[\.;]$' your_file

2:

awk '/\.$/ || /;$/' your_file

三:

awk '/[\.;]$/' your_file
于 2012-10-03T12:13:39.213 に答える