トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Linux:大きなテキストデータの一部だけ編集したい

Last-modified: 2013-08-24 (土) 02:14:21 (3891d)
Top / Linux:大きなテキストデータの一部だけ編集したい

Linux:大きなテキストデータの一部だけ編集したい

大きなテキストをviで開いて編集するのは大変です。そんなときは、こんな感じで作業します。

まず、あるそこそこのサイズのテキストファイル「test.txt」があるとします。

# ls
test.txt
# wc -l test.txt 
93960 test.txt
#

これの行数は、約9万4千行です。

これを、以下のようにして分割します。

# cat test.txt |split -a5
# ls
test.txt  xaaaaf  xaaaal  xaaaar  xaaaax  xaaabd  xaaabj  xaaabp  xaaabv  xaaacb  xaaach  xaaacn  xaaact  xaaacz  xaaadf  xaaadl
xaaaaa    xaaaag  xaaaam  xaaaas  xaaaay  xaaabe  xaaabk  xaaabq  xaaabw  xaaacc  xaaaci  xaaaco  xaaacu  xaaada  xaaadg  xaaadm
xaaaab    xaaaah  xaaaan  xaaaat  xaaaaz  xaaabf  xaaabl  xaaabr  xaaabx  xaaacd  xaaacj  xaaacp  xaaacv  xaaadb  xaaadh  xaaadn
xaaaac    xaaaai  xaaaao  xaaaau  xaaaba  xaaabg  xaaabm  xaaabs  xaaaby  xaaace  xaaack  xaaacq  xaaacw  xaaadc  xaaadi  xaaado
xaaaad    xaaaaj  xaaaap  xaaaav  xaaabb  xaaabh  xaaabn  xaaabt  xaaabz  xaaacf  xaaacl  xaaacr  xaaacx  xaaadd  xaaadj  xaaadp
xaaaae    xaaaak  xaaaaq  xaaaaw  xaaabc  xaaabi  xaaabo  xaaabu  xaaaca  xaaacg  xaaacm  xaaacs  xaaacy  xaaade  xaaadk
# 

すると、ファイル名がxaから始まる、1ファイルに1000行入ったファイルに分割されます。

# wc -l xaaaaa 
1000 xaaaaa
# 

ここで、分割されたファイルの中から編集部分を探すことで、小さいファイルに編集を加えることができます。

くっつける場合は、以下のようにします。

# cat xa* > test2.txt
# 

すると、元通りにくっついてくれます。

# wc -l test2.txt 
93960 test2.txt
# diff test.txt test2.txt
#

※今回はファイルを編集していないので、差分はありません。

なるほど~便利!