*

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

###

 

関連記事

【AI】AI で note に投稿することが流行っているそうな

AI で note に投稿することが流行っているそうな。 note(ノート)は「だれもが創作を

記事を読む

I-O DATA 高速・多機能・ブロードバンド有線ルーター ETX-R

I-O DATA 高速・多機能・ブロードバンド有線ルーター ETX-R ア

記事を読む

Panasonic 録画用4倍速ブルーレイディスク片面2層50GB(追記型)スピンドル50枚 LM-BRS50L50S【WEB限定】(2)

Panasonic 録画用4倍速ブルーレイディスク片面2層50GB(追記型)スピ

記事を読む

OZZIO MX35332SDS スタンバイほぼ完了

OZZIO(オッジオ)というあの悪評高い PC DEPOT のブランドのマシン。ヤフオクで落

記事を読む

【ヤフオク】NEC PC-MK33LLZT1FJD 到着

3500円+送料で落札。 CPU:インテル Core i3-560 (3.3GHz

記事を読む

ADA ドライブ(LKM-KB12)のメディア

* この前 ADA(Advanced Disc for Archive) ドライブについて

記事を読む

Voyager 14.04 LTS インストールしてみた

* Linux(無料の OS)の数あるディストリビューションの中から Sugar Mo

記事を読む

Ubuntu の日本語化

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

記事を読む

A880G+ Ver. 6.x

BIOSTAR SocketAM3 MicroATXマザーボード A880G

記事を読む

ハードディスクのコピー

私は PC のハードディスクのコピーには PC に繋がなくても使えるデュプリケーターを使っています。

記事を読む

Message

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

毎月配当の超高配当投資信託の「ネクスト・ジェネレーション」の配当について

毎月配当の超高配当投資信託の「ネクスト・ジェネレーション」の今年の配当

Felo 日本発の AI

Felo(フェロー)は、東京を拠点とするスタートアップ企業「Felo

AIPI, CEPI, FEPI 毎週配当2回目

REX 社が運用している AIPI、CEPI、FEPI の超高配当カバ

熊本産メロン「肥後グリーン」秀・優品 大玉2L~3Lサイズ 4~5玉 8kg前後

熊本産 ”肥後グリーン” 秀・

珍しい腱板断裂

肩の MRI は毎日数例所見をつけます。 放射線科医の中では

→もっと見る

  • 2026年6月
    1234567
    891011121314
    15161718192021
    22232425262728
    2930  
  • アクセスカウンター
PAGE TOP ↑