*

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

###

 

関連記事

Outlook の添付ファイルは極窓に調べてもらおう

* 私はメーラーには Gmail を使っていますが、ときどき添付ファイルで拡張子が eml の

記事を読む

Linux の利点

Linux の利点 をまとめてみました。 * 動作が軽い 古いパソコンでサクサク動く。

記事を読む

マジェスタッチ2枚め:FKB108M/JB

FILCO Majestouch 日本語108キーボード・かなあり・黒 US

記事を読む

ハードディスクの換装

   「TrueImage Personal 2」 を使ったシステムディスクの換装が

記事を読む

膵臓癌 スティーブ・ジョブズ

スティーブ・ジョブズが亡くなったそうな。 膵臓癌にしてはよくもったほうですね。 今年のノーベル

記事を読む

Microsoft Home Server 2011 日本語 DSP版 DVD 【LANボードセット品】最速導入ハンドブック付

Microsoft Home Server 2011 日本語 DSP版 DV

記事を読む

パソコンの修理

* 自宅(兼仕事場)で普段使っているデスクトップ&タワーのパソコンは 6台ですが、このほかに数

記事を読む

BMAX ミニPC Intel N95 購入

ミニPC また買いました。アマゾンで ¥19,997でした。

記事を読む

【ヤフオク】WD800AAJS 3.5インチHDD 80GBx4台セット 正常品 到着

990円+送料で落札。 正常動作の中古品だということですが、ワタシも一応 Crysta

記事を読む

Windows10 で Google日本語変換が止まる

Windows10 にアップグレードした PC で Google日本語変換の途中で止まるのです。

記事を読む

Message

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

イシバの功績

高市総理がすごい成果を上げている。 マスコミはなぜトランプを非難

米国債20年超プレミアムインカムETF(453A)

また面白い高配当ETF を見つけました。米国債20年超プレミアムインカ

WCM 世界成長株厳選ファンド(予想分配金提示型)【愛称】ネクスト・ジェネレーション(2)

以前紹介した「WCM 世界成長株厳選ファンド(予想分配金提示型)【愛称

静かな森?

Stillwood という Youtube チャンネルがあります。>

投資における AI の利用 分析

投資商品が増えてくると管理がめんどくさいですよね。 楽天証券から

→もっと見る

  • 2026年5月
     123
    45678910
    11121314151617
    18192021222324
    25262728293031
  • アクセスカウンター
PAGE TOP ↑