*

sed で連続した複数の空行を1つにまとめる

公開日: : 最終更新日:2014/07/16 パソコン

前日の記事「 WSH で初めてのプログラミング 」で行った作業ですが、ちょっと不満があったのでやり直し。

プログラムではなく、データ自体の問題。

6000以上ある個別のテキストファイルのうちのかなりのものが重複しているのですが、改行が1つ余分に入っているだけで同じファイルとは認識されず、ほぼ同じデータが最終データに大量に混入します。

そこでまたいろいろ考えたのですが、たしか sed(ストリームエディタ)で昔やったことがあるな、と。

sed マニュアル

調べてみるとありました。

/^$/{
N
/^\n$/D
}

 

上の sed 用コマンドで、複数個の連続した改行(空の行)を1つに縮められます。

> sed –f commandfile < file1 >file2

の書式を使って簡単に終了。

もちろん1個1個こんなことはしておらず、DOS用のsedコマンドを使ったためバッチファイルと組み合わせて一括で処理してしまいました。

前日の結果よりも 500個近い重複ファイルが排除され、ずいぶんスリムになりました。

上は DOS で行ったのでめんどくさいですが、Linux なら sed  も標準で装備していますし、強力なシェルスクリプトもありますので、もっと簡単。

上の sed 用コマンドを commandfile というファイルにしておいて次のようなシェルスクリプトを端末から走らせれば、テキストファイルが 6000個だろうと 6000万個だろうと一発ですんでしまいます。

 

#!/bin/bash

shori_files=”$(find /tmp/shorizen -name *.txt)”
for file in $shori_files
do
    sed -f commandfile < $file >  /temp/shorigo $file
done

###

 

関連記事

Ubuntu のデータバックアップ用ソフト「deja dup」がいいね!

パソコンで最も重要なものは自分の作ったデータです。 世界のどこにもないオリジナルなものですので

記事を読む

6画面ディスプレーのPC

6画面ディスプレィのマシンの作り方が載っています。 > http://ascii.jp/

記事を読む

WINE / Linux OS 上で Widows アプリを走らせる

Wine (Wine is not emulator) というシステムが Linux にありまし

記事を読む

Ubuntu の日本語化

Ubuntu の日本語化についてですが、オリジナルの Ubuntu は日本語の表示には対応してい

記事を読む

Voyager 14.04 LTS ライブ起動してみた

Ubuntu 14.04 LTS 発表 久々の Linux ネタです。 先月、Ubuntu

記事を読む

Kona Linux 3.0 Cinnamon版 試用

Kona Linux がいつのまにか 3.0 になっていて、しかもデスクトップ環境がいくつも

記事を読む

IODATA HDCR-U2.0 の中身

I-O DATA 東芝対応 USB 2.0/1.1接続 外付型ハードディスク 2

記事を読む

とりあえず復旧完了(仮)

玄人志向 HDDスタンド USB3.0接続 KURO-DACHI/CLONE/U3

記事を読む

1000BASE-T対応 8ポートレイヤー2スイッチングハブ ETG-ESH8

I-O DATA 省電力機能搭載!1000BASE-T対応 8ポートレイヤー2ス

記事を読む

ウエスタンデジタルHDD Ultrastar 14TB

以前書いた記事「500GB HDD が安い」の中で紹介した 2.5インチ 500GB ハードディスク

記事を読む

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

イオン株2/3売る

2022年7月20日に株主優待目当てにイオン株を 100株買いました。

HFM ドル口座開設

以前紹介した スプレッドが狭い業者である HFM ですが、リアル口座を

ウエスタンデジタルHDD Ultrastar 14TB

以前書いた記事「500GB HDD が安い」の中で紹介した 2.5イン

フランケーヌの犬

腐乱犬:「イオーン、イオーン」 子供:「あ、なにか遠吠えしてるね

【FX】AXI Select 4日目 エッジスコアがちょっとだけ上がる

プロップファームの一種である AXI Select のインキュベーショ

→もっと見る

  • 2025年12月
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
  • アクセスカウンター
PAGE TOP ↑