クエリの行番号はどのように表示できますか?

クエリの行番号はどのように表示できますか?

output.txt146万行のデータを含むテキストファイルがあるとします。

27QLファイルからテキストを検索したいです。

テキストが存在する場合、Linuxは行番号を返す必要があります。

どうすればいいですか?

私はそれを使用できますかgrep?それではどうですか?

答え1

ユーティリティには、パターンに一致する行番号をgrep通常の出力の前に追加する標準オプションがあります。行番号と行内容はコロンで区切られます。-ngrep

grep -n -F -w '27QL' file

ここでは、完全な単語のみを検索するために非標準-wオプションも使用しました。つまり、またはと127QL一致しません27QLA。作者-Fgrepひも正規表現ではなく

出力から実際のデータを削除するには(つまり、行番号のみを抽出する)、出力を次に渡しますcut

grep -n -F -w '27QL' file |
cut -d : -f 1

答え2

以下も使用できますsed

sed -n '/27QL/=' infile

sedのスイッチ-nは自動デフォルト印刷ジョブであり、=ログイン後に/pattern/=マットモードの行番号のみが印刷されます。


awk/より強力なテキスト処理ツールを使用しても:grepsed

awk '/27QL/{ print NR }' infile

NRawkで表現窒素数量記録。

関連情報