*

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

###

 

関連記事

DELL Optiplex 755 2台目(2) / FreeDOS での BIOSの書き換え

* DELL Optiplex 755 の2台目ですが、こいつは Optiplex760 に

記事を読む

ミニPC Hitabt M30A

Hitabt という中華メーカーの M30A というミニPC です。 ブランド

記事を読む

MakuluLinux 14 LinDoz 試用してみた

MakuluLinux 14 使ってみた Makulu の現行バージョンである MakuluLin

記事を読む

Ubuntu の日本語化

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

記事を読む

no image

オンラインコンパイラ

* この前、ちょっと C言語でプログラムを作ろうかと思い立ちました。 何年ぶりかな? ベクター

記事を読む

TEDD2048M800HC5 2枚使えない

TEDD2048M800HC5 は DDR2 メモリの 2GB 版です。 ヒートスプレ

記事を読む

本日の戦利品(パソコン分)

* DELL OptiPlex 755 DELL PRECISION 490

記事を読む

Windows11 どエラいエラー発覚

https://www.youtube.com/watch?v=7TptWy6sWlw Win

記事を読む

no image

InstallShield Update Service のエラー

* 高槻遠隔画像診断センターで使っている Windows XP の PC 2台の話。 これは後か

記事を読む

あらま、奇跡! HDDが生き返った

* 実は昨日、仕事で借りている読影端末のハードディスクがコンコンと咳、いや金属音を響かせるよう

記事を読む

Message

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

イラン攻撃

昨日からイスラエル&アメリカによるイラン攻撃の話でもちきりですね。

S&P500 よりゴルプラ

「ゴルプラ」とは、日興アセットマネジメントの投資信託「Tracers

楽天SCHD順調(筋書き通り?)

https://www.youtube.com/watch?v=o9V

NF日本高配当70 から GS日本株・プラス(通貨分散コース)へ

超高配当(現時点では)の「GS日本株・プラス(通貨分散コース)」をとり

GS日本株・プラス(通貨分散コース)本日より購入開始

投資信託の「GS日本株・プラス(通貨分散コース)」を本日から開始します

→もっと見る

  • 2026年3月
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031  
  • アクセスカウンター
PAGE TOP ↑