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

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

ただいまの
回答率

90.35%

  • Excel

    1629questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • CSV

    704questions

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

大量のcsvファイル全ての1行目を削除したい

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 822

testyoutatsu

score 11

 前提・実現したいこと

1万個以上のcsvファイル全ての1列目を削除したいです。
以下のように1列目が文字化けしてしまっているためXcodeで配列に格納することができません。

ì˙éû,éníl(BID),çÇíl(BID),à¿íl(BID),èIíl(BID),éníl(ASK),çÇíl(ASK),à¿íl(ASK),èIíl(ASK)
2018/03/26 07:00:00,104.663,104.673,104.654,104.673,104.678,104.688,104.67,104.688
2018/03/26 07:01:00,104.673,104.706,104.673,104.703,104.688,104.721,104.688,104.718

補足情報

使用しているPCはmacOS High Sierra、Windows10です。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • KojiDoi

    2018/07/29 15:10

    要件があいまいすぎます。対象はcsvなのですかエクセルのワークシートなのですか? OSはmacOSなのですかwindowsなのですか。はっきり書いてください。

    キャンセル

  • KojiDoi

    2018/07/29 15:48

    消したいのは一列目ですか? 一行目ではなく?

    キャンセル

  • testyoutatsu

    2018/07/29 15:53

    すみません。1列目ではなく1行目でした。

    キャンセル

回答 2

checkベストアンサー

+2

多分一行目を消したいんだろうと勝手に忖度。

sed -i.bak '1d' *.csv

追記:

ファイルがたくさんあるとき

for i in *.csv
do sed -i.bak '1d' $i
done

サブディレクトリがあって下の方まで全部処理したいとき

find . -name '*.csv' -exec sed -i.bak '1d' {} \;

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/29 16:15

    回答ありがとうございます。一列目ではなくて一行目でした。
    教えていただいたコマンドで希望通り一行目を削除することができました。
    PC不慣れで申し訳ないのですが、複数ファイル一括でコマンドを実行するにはどうすれば良いのでしょうか?

    キャンセル

  • 2018/07/29 16:16

    このとおりにやれば該当する全てのファイルが書き換えられます。

    キャンセル

  • 2018/07/29 16:18

    あまりにファイル数が多い場合はコマンドラインの字数制限に引っかかるかもしれません。その場合については追記しておきます。

    キャンセル

  • 2018/07/29 16:45

    cdを使って.csvファイルのあるディレクトリに移動して sed -i.bak '1d' *.csv のまま実行したのですが sed: *.csv: No such file or directory のエラーが出てしまいます。
    無知で申し訳ないのですが詳細な手順を教えていただいてもらえませんでしょうか。少々調べてみましたがヒットしませんでした。

    キャンセル

  • 2018/07/29 16:47

    ファイルの拡張子が.csvなのだろうという前提で回答しています。たとえば.txtなのだったらそのように書き換えてください。

    キャンセル

  • 2018/07/29 16:56 編集

    拡張子は.csvです。再度 cd で移動し sed を実行したところエラーは出ませんでしたが、フォルダ内(名前順最初の)一つの.csvファイルの一行目しか削除されていませんでした。

    「201801」フォルダに22個の.csvファイルがあります。cd で201801 に移動し、PC名:201801 <ホーム>$ sed -i.bak '1d' *.csv を実行しました。

    キャンセル

  • 2018/07/29 17:14 編集

    丁寧、詳しい回答ありがとうございました。無知で恥ずかしい限りです。
    追記で回答していただいたコマンドを実行したところ全ファイルの一行目を削除することができました。

    キャンセル

0

Excelなど不要。そう、シェル芸ならね!

PS> gci -i *.csv|%{(gc -en UTF8 $_)|%{$_ -replace'^[^,]+,',''}|sc -en UTF8 $_}


ダブルクォーテーションは考慮していません。
in-placeのために一旦メモリにすべて読み込んでいるので、でかいファイルだと転けます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Excel

    1629questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • CSV

    704questions

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