2011-10-25 24 views
3

私は、コマンドラインからcsvファイルを操作する方法を学んでいます。私はsedを使ってファイルからいくつかの行を削除したい。このcat file.csv | sed 1,2d > file.csvのファイルのヘッダーを削除しました。sedを使ってcsvファイルから複数の行を削除する

今、私はファイル(行3、10、12、および28-35)からさらにいくつかの行を削除したいと思います。私はどんな助けにも感謝しています。

答えて

3

sedの実装に応じて、あなたはそれらを分離できます。

cat file.csv | sed "1,2d;10d;12d;28,35d" > file2.csv 
+0

を私は取得していますエラー: '-bash:10d:コマンドが見つかりません '、' 12d'と '28,35d'で同じです。以前と同様に、 '1,2d'が動作しています。 csvの構造が原因である可能性はありますか? –

+0

ファイルが原因ではありません。私の例は、すべての場合に有効であってはなりません。私はおそらく完全に互換性のないsedのバージョンかもしれないとWindowsでそれを実行していた。私は明日それをもっとテストしなければならないでしょう。悪いリードに申し訳ありません。 –

+0

問題はありませんし、努力のおかげで! –

2

はこのように、1つのsed呼び出しにいくつかのコマンドを渡すために-eフラグを使用して、次のように

seq 1 40 | sed -e 1,2d -e 3d -e 10d -e 12d -e 28,35d 
関連する問題