42

grep指定された単語が出現する行番号を提供できますか?

また、grepある行から下に向かって単語を検索することはできますか?

4

3 に答える 3

61

grep -n一致の行番号を取得するために使用します。

特定の行番号でgrepを開始する方法はないと思います。そのためには、sed を使用します。たとえば、10 行目から開始して、一致する行の行番号と行を出力するには、次のようにします。

sed -n '10,$ { /regex/ { =; p; } }' file

行番号のみを取得するには、次を使用できます

grep -n 'regex' | sed 's/^\([0-9]\+\):.*$/\1/'

または、単に sed を使用することもできます。

sed -n '/regex/=' file

2 つの sed コマンドを組み合わせると、次のようになります。

sed -n '10,$ { /regex/= }' file
于 2012-05-14T19:38:19.610 に答える
3

行番号を表示するために呼び出しtail +[line number] [file]てパイプすることができます:grep -n

tail +[line number] [file] | grep -n /regex/

この方法の唯一の問題は、 によって報告される行番号が の実際の行番号よりも少なくgrep -nなることです。[line number] - 1[file]

于 2012-05-14T20:00:34.643 に答える