正規表現を使った文字列の抽出方法について
RHELを使っています。
テキストデータの中に、以下のようなデータが
百万行単位で並んでいます。(カンマ区切り、2列構成)
1, 1.24425
2, 3.25252
(中略)
13, 6.25365
14, 8,36222
(中略)
103633, 252525.0
最終的にやりたいことは2列目のデータのみの抽出です。
考え方として、正規表現で
「<任意の文字列の連続><カンマ>」という文字列を認識させ、
それを「空欄」で置換したいと考えています。
文字列の最後の文字をマッチさせる指定子が「$」という情報をWebで見つけたので
まず、grepで見つけられるか以下のようにやってみたのですが、
grep -i ",$" test.txt
$が環境変数と取られ、構文エラーとなってしまいます。
使い方がおかしいのでしょうか?
ちなみに、うすうす感じている疑問として、「$」は文末にくるものしかマッチしなかったり
しますでしょうか?
カンマ区切りなので、表計算ソフトを使えなくもないですが、
行数がExcel2007の限界をよく超えるので、それ以外の方法で考えています。
アドバイスよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
grepではなくsedとかawkだと以下で実現出来ると思います。
$ sed -e 's/^.*,//' test.txt
$ awk -F, '{print $2}' test.txt
ご回答ありがとうございます。
grepでマッチング確認した後、sedに入ろうと思ってましたが、
一足跳んで答えを教えて頂き、感謝です^^
^ 行頭から始まる
. 何か一文字が
* 0文字以上マッチングして
, カンマがある
という表現をすればいけるんですね。
テスト環境には明日昼にならないといけませんが試させて頂きます。
どうもありがとうございました。
No.1
- 回答日時:
""じゃなく、''でくくれば変数として扱われなくはなりますが、
期待通りの結果は得られませんね。
awkをつかって
awk -F, '{print $2}' test.txt
とでもした方が楽じゃないでしょうか。
ご回答ありがとうございます。
そうですね、シングルクォーテーションでくくれば、展開されないですが、
うまくいきませんでした。
grepでできないのもわかってましたが、
まずマッチングができれば、sedでできるかなと考えてました。
最もsedもこれから書式を調べるところだったのですが、、、
まずは正規表現をうまくやることから、、と思い。
awkは、存在は知ってましたが、まだマニュアルの理解が大変で、、;;
sedを勉強したのちにやってみることにします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- オープンソース csvデータのダブルクォーテーションで囲まれた文字内にあるカンマを削除したい 3 2022/09/02 15:17
- Excel(エクセル) エクセルで重複データから重複を削除して指定の列に抽出したい 11 2022/05/11 11:26
- Excel(エクセル) Excelの関数についておしえてください。 3 2023/04/20 18:36
- フリーソフト サクラエディタの正規表現(grep機能)の使い方 3 2022/06/22 10:29
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- PostgreSQL 数値が定期的にあらわれる文字列から、いくつめに出現した数値が指定して切り出したい 1 2023/06/08 13:12
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
bashでシングルクォート内の変...
-
[Linux初心者]Ubuntu22.04.3LTS...
-
自作のウェブサイトを友人に見...
-
Ubuntu系とCentOS系の違いはな...
-
AWSでSSH接続をしたいのですが...
-
ubuntu(linux)のシャットダウン...
-
Ubuntu on Xorgのログインについて
-
ubuntuで デイスク/deb/loopと...
-
ubuntuのシャットダウンが進ま...
-
yumやaptで依存関係で自動的に...
-
Ubuntuで数字だけのユーザーア...
-
Windowsのローカルディレクトリ...
-
VirtualBox ゲストOSにPC内蔵HD...
-
linuxサーバーのキャッシュをク...
-
ホストオンリーアダプタで接続...
-
ntpq -pの結果が全てstratum 16...
-
ssl_error_logのエラー内容(AH...
-
Let’s Encrypt の自動更新をcro...
-
Linux のシェルスクリプトの強...
-
ファイルデータでネットワーク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ubuntu(linux)のシャットダウン...
-
bashでシングルクォート内の変...
-
ubuntuのシャットダウンが進ま...
-
Windowsのパソコンを使って仮想...
-
ubuntuで デイスク/deb/loopと...
-
AWSでSSH接続をしたいのですが...
-
Ubuntu on Xorgのログインについて
-
LinuxのノートパソコンでDVDコ...
-
linuxサーバーのキャッシュをク...
-
Postfixでドコモメールに送信す...
-
Windowsのローカルディレクトリ...
-
tarで纏める際に、複数場外した...
-
Linux のシェルスクリプトの強...
-
Linux Mint 日本語入力できなく...
-
ホストオンリーアダプタで接続...
-
ubuntuのサーバー(virtual box)...
-
VirtualBox ゲストOSにPC内蔵HD...
-
shellscript内のコマンドを、su...
-
Linux Ubuntu22.4の起動時エラ...
-
Ubuntu でinvalid filenameとな...
おすすめ情報