• ベストアンサー

linuxのgrepコマンドに関して

linuxのgrepコマンドに関して ファイルの中から、1や2という文字が単独で存在する行を検索したくて grep 1 file名 とするのですが、そうすると11や23など文字が単独ではなく、含まれている行が出力されます。 含まれる、ではなく文字そのものを検索するにはどうしたらよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.4

「1を含む。ただし1の前後に英数字が続くものを除く」だと、 grep -w 1 と簡単に書けます。 行に数字しかなくて、1 というただ一文字しかない行だけを抜き出したいなら、 grep -x 1 または grep -x '^1$' です。 です。

noname#182748
質問者

お礼

かいとうありがとうございます。-wのオプションをしりませんでした。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • NARH
  • ベストアンサー率82% (88/107)
回答No.3

サンプルとして $ cat test.txt 111 NG 11 NG 1 OK a1 OK a11 NG a111 NG 1a OK 11a NG 111a NG 123 OK 222 NG 22 NG 2 OK a2 OK a22 NG a222 NG 2a OK 22a NG 222a NG 123 OK のようなデータがあったときに、1 が1回だけ現れる行を出力する $ grep 1 test.txt | grep -v 11 | sort | uniq 1 OK 123 OK 1a OK a1 OK のようにパイプ処理してはどうですか? でも > 説明不足ですいません。4が単独で存在するとは、 > 4はOKですが、 > 444はアウトです。 > 4という文字が、文字の並びの中に a4,324,24,43,4fなどのように 存在する場合を除のが目標です。 > つまり、4の前後に何が文字が1文字以上ある場合を取り除きたいのです。 を読むと、単独(1回のみ)現れる行を表示したいのか、取り除きたいのかよくわからん。

noname#182748
質問者

お礼

回答ありがとうございます。うまくいきました。

すると、全ての回答が全文表示されます。
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.2

grep "1 " ファイルかな。 1と直後が空白を探す? grep -w 1 ファイルだと1で始まるものがひっかっかる。

noname#182748
質問者

お礼

回答ありあがとうございます。

すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「単独で存在する」とはどういうことでしょうか? booo 1 7 444 という行では「単独で存在する」と言っていい?

noname#182748
質問者

お礼

回答ありがとうございます。 説明不足ですいません。4が単独で存在するとは、 4はOKですが、 444はアウトです。 4という文字が、文字の並びの中に a4,324,24,43,4fなどのように 存在する場合を除くのが目標です。 つまり、4の前後に何が文字が1文字以上ある場合を取り除きたいのです。

すると、全ての回答が全文表示されます。

関連するQ&A