output.txt
146万行のデータを含むテキストファイルがあるとします。
27QL
ファイルからテキストを検索したいです。
テキストが存在する場合、Linuxは行番号を返す必要があります。
どうすればいいですか?
私はそれを使用できますかgrep
?それではどうですか?
答え1
ユーティリティには、パターンに一致する行番号をgrep
通常の出力の前に追加する標準オプションがあります。行番号と行内容はコロンで区切られます。-n
grep
grep -n -F -w '27QL' file
ここでは、完全な単語のみを検索するために非標準-w
オプションも使用しました。つまり、またはと127QL
一致しません27QLA
。作者-F
grep
ひも正規表現ではなく
出力から実際のデータを削除するには(つまり、行番号のみを抽出する)、出力を次に渡しますcut
。
grep -n -F -w '27QL' file |
cut -d : -f 1
答え2
以下も使用できますsed
。
sed -n '/27QL/=' infile
sedのスイッチ-n
は自動デフォルト印刷ジョブであり、=
ログイン後に/pattern/=
マットモードの行番号のみが印刷されます。
awk
/より強力なテキスト処理ツールを使用しても:grep
sed
awk '/27QL/{ print NR }' infile
NR
awkで表現窒素数量右記録。