So-net無料ブログ作成

改行コードを捨てる [小技(Linux)]

 会社で、「あるテキストファイル(複数行記述されている)の改行コードを全部カットしたいんですけどー、なんかいい方法ないっすかね?」と聞かれた。彼はsedコマンドでいろいろ頑張っていたが、そういう用途には基本的にsedは不向きであることを教えて(出来ないわけじゃない)他の方法を探らせてみた。

 …というか、彼はその方法を今まさに考え中だ。(笑)

 コマンドを知っていても、その活用方法を知らなければ効果は半減する。英単語それ自体を知っていても、熟語とか慣用句、言い回しを知らなければ意味がないのと一緒だ。コマンドの「ボキャブラリー」をどれだけ増やせるかが問題なんだ!!

 というわけで、彼が(なぜか)苦しんでいる間に、ここに正解をいくつか書いてしまおう(笑)。

 なお、ここで使用するファイルは…
[root@sawako tmp]# cat /tmp/test.txt
Yui
Mio
Ritsu
Tsumugi
Azusa

 というファイルであるとする。

方法その1:trコマンド

 てか、真っ先にコレが思いつくべきじゃないかと個人的には思うんだけども。(笑)
[root@sawako tmp]# tr -d "\n" < /tmp/test.txt
YuiMioRitsuTsumugiAzusa[root@sawako tmp]#

 ファイルの一番最後の改行まで削除されてしまいコマンドプロンプトまでうしろにくっついているけどな!(大笑)


方法その2:awkコマンド

 sedを思いつくならawkも忘れないで!!(笑)
[root@sawako tmp]# awk '{printf "%s",$0}' /tmp/test.txt
YuiMioRitsuTsumugiAzusa[root@sawako tmp]#

 trコマンドと全く一緒だ。
 まあ、awkがアリだというのなら、perlでもphpでもrubyでもC/C++でもJavaでもアリじゃん…というツッコミはここでは禁止である。(笑)


方法その3:echoコマンドとcatコマンド…というか重要なのはむしろ「`」(バック・クォート)

 これはtrコマンドとかとちょっと見栄えが変わるけども、「1行にする」という命題は一応クリアするぞ!?
[root@sawako tmp]# echo `cat /tmp/test.txt`
Yui Mio Ritsu Tsumugi Azusa
[root@sawako tmp]#


 改行がスペースに変換されて並んでますな。



 さて。彼は一体どんな方法を思いつくだろうか!!!!
 若人よがんばれ!!(笑)




続きを読む


ファイルを置きすぎたディレクトリでファイルの一覧が見たい時 [小技(Linux)]

 1つのディレクトリの中に、ファイルを超大量に置いてはいけないということは、サーバ管理の鉄則でもありますが(特にext3とかな!)、たまーにやっちゃう人がいますね。(笑)1つのディレクトリに数千ファイルとか1万ファイルとか!!!!!!

 で、そんなディレクトリでlsなんてやっちまった日にゃ…
[root@konata cache_page]# ls -la
合計 21448
drwxrwxrwx  127 dev    dev       4096  4月  4 21:11 .
drwxrwxrwx    3 dev    dev       4096  6月 30  2009 ..
(途中省略)
drwxrwxrwx    2 dev    dev    6254592  4月  4 21:16 pickup
(さらに省略)
drwxrwxrwx  362 nobody nobody 1286144  4月  4 21:17 announce
drwxrwxrwx    2 dev    dev    6197248  4月  4 21:17 index
drwxrwxrwx    2 dev    dev      86016  1月  8 16:19 index2
drwxrwxrwx    2 dev    dev    2994176  3月  1  2010 index3
(以下略)

 もう、いやな予感しかしないディレクトリがありますね?^-^

 では、ls -la してみましょう!!!
[root@konata cache_page]# cd pickup
[root@konata pickup]# ls -la






 へんじがない。ただのしかばねのようだ・・・



 てな具合になっちまう訳ですよもう。
 でも、場合によっては、ど~~~~~~しても、ファイルのリストが見たいの!みたいな場合も有りますよね?

 そんなあなたには、findコマンドがお役に立ちます。^-^
[root@konata pickup]# find . -print
.
./cache_baea74f5ce6b3ee89c4d2493b93240ee_cc61cc31dd333eac4b580d
./cache_baea74f5ce6b3ee89c4d2493b93240ee_d367f0559782ffdebddfe3
./cache_baea74f5ce6b3ee89c4d2493b93240ee_b246d51c1e42cbad61e348
./cache_baea74f5ce6b3ee89c4d2493b93240ee_14fcf1db4202c611dd0260
./cache_baea74f5ce6b3ee89c4d2493b93240ee_dd11224a64b71d5622c3c3
./cache_baea74f5ce6b3ee89c4d2493b93240ee_f558391470dfa0f7cf9407
./cache_baea74f5ce6b3ee89c4d2493b93240ee_57f72ef84cda3d2b99c158
./cache_baea74f5ce6b3ee89c4d2493b93240ee_b5a396b0c7ff57aa323200
./cache_baea74f5ce6b3ee89c4d2493b93240ee_c8687e129ad9c840419b77
(ファイルの一覧がだーーーーーーーっと表示)


 ひとまず、ファイル名とかはこれで確認できます。
メッセージを送る