
はじめに
シェルスクリプトでCSVファイルを読み込むスクリプトを書く機会がありました。
その時にダブルクォーテーションで括られていている値を処理する必要があり、
ダブルクォーテーションを除いた値を取得したかったので以下の様な方法をとりました。 bashで動作確認しています。
スクリプト
1 | echo "文字列" | sed 's/"//g' |
解説
sedコマンドを使用しています。sedコマンドは与えられた文字列を与えられたルールに従って変換するコマンドになります。
まずダブルクォーテーションを空文字('')に置換しています。スラッシュ(/)はデリミタ(区切り文字)でsの後ろに指定した文字がデリミタとなります。
デリミタの後にダブルクォーテーションを指定し置換する文字はスラッシュ2つで区切り文字の中をカラにすることで空文字を表しています。
最後にgオプションを指定してすべてのダブルクォーテーションに対して置換を行っています。
例ではパイプを使用してsedコマンドに文字列を渡しています。