質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

置換

置換とは文字列中の特定の文字に対して、別の文字列に置き換えることを指します。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

解決済

1回答

7168閲覧

CSVファイルにおける各項目値の空白除去

tritankn

総合スコア16

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

置換

置換とは文字列中の特定の文字に対して、別の文字列に置き換えることを指します。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

1クリップ

投稿2016/08/05 01:36

###前提・実現したいこと
とあるCSVファイルの各項目の末尾に複数の半角スペースがついており、
これをバッチ処理(shellの処理)にて除去したいと思っています。
末尾以外の半角スペースは、そのまま残したいです。

例えば各項目をカンマでsplitし、ループ処理で各項目の末尾のみ除去するような事は出来ると思いますが、
可能であれば正規表現による一括置換ですむようでしたら、
そちらのほうがキレイなので出来ればそうしたいと考えています。

以下例になります。
このようなCSVファイルの場合
aa ,bb ,cc c ,d dd
e e ,ff ,g g , hh

こうしたい(項目の頭、途中の半角スペースは残す)
aa,bb,cc c,d dd
e e,ff,g g, hh

###試したこと
sed -i -e 's/ //g' ${fileName}
これですと、全ての半角スペースを除去してしまいます..

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

sed -i -e 's/ *,/,/g' ${filename}
ではだめでしょうか。

いやこれじゃ行末の空白文字が除去できないですね。

sed -i -e 's/ *,/,/g' -e 's/ *$//' ${filename}

これでどうでしょう。

投稿2016/08/05 01:45

編集2016/08/05 02:03
imutakaoru

総合スコア356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tritankn

2016/08/05 02:05

早急なご回答、ありがとうございます! 希望通りの結果となりました!(_ _) クローズ致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問