- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:正規表現を使った文字列の抽出方法について)
正規表現を使った文字列の抽出方法について
このQ&Aのポイント
- RHELを使っている場合、正規表現を使ってテキストデータから特定の文字列を抽出したい時、grepコマンドを使用することができます。しかし、環境変数の「$」が構文エラーを引き起こすことがあります。
- 正規表現で「<任意の文字列の連続><カンマ>」という文字列を認識させ、それを「空欄」で置換することで、特定の文字列の抽出が可能です。
- また、正規表現の指定子「$」は文末にくるものしかマッチしないため、文字列の最後の文字をマッチさせることができます。ただし、grepコマンドでは環境変数の「$」が問題となる場合があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#163669
回答No.2
grepではなくsedとかawkだと以下で実現出来ると思います。 $ sed -e 's/^.*,//' test.txt $ awk -F, '{print $2}' test.txt
その他の回答 (1)
- sakusaker7
- ベストアンサー率62% (800/1280)
回答No.1
""じゃなく、''でくくれば変数として扱われなくはなりますが、 期待通りの結果は得られませんね。 awkをつかって awk -F, '{print $2}' test.txt とでもした方が楽じゃないでしょうか。
質問者
お礼
ご回答ありがとうございます。 そうですね、シングルクォーテーションでくくれば、展開されないですが、 うまくいきませんでした。 grepでできないのもわかってましたが、 まずマッチングができれば、sedでできるかなと考えてました。 最もsedもこれから書式を調べるところだったのですが、、、 まずは正規表現をうまくやることから、、と思い。 awkは、存在は知ってましたが、まだマニュアルの理解が大変で、、;; sedを勉強したのちにやってみることにします。
お礼
ご回答ありがとうございます。 grepでマッチング確認した後、sedに入ろうと思ってましたが、 一足跳んで答えを教えて頂き、感謝です^^ ^ 行頭から始まる . 何か一文字が * 0文字以上マッチングして , カンマがある という表現をすればいけるんですね。 テスト環境には明日昼にならないといけませんが試させて頂きます。 どうもありがとうございました。