スポンサーリンク
突然ですが、私はワンライナーが好きです。いちいちシェルスクリプトにすると、ファイルがたくさん増えてしまい汚くなってしまうので、簡単な処理ならできるだけワンライナーにしたいと思っています。
今回はそんな私がよく使うワンライナーをご紹介します。
Linuxサーバ上で作業をしている時、入力値としてディレクトリ内のファイル名一覧が欲しいことってありませんか?ありますよね。ええ。
初心者だった頃の私は、そんな時は一度lsコマンドの実行結果をファイルに出力させ、そのファイルをwhile文などで読み込ませる方法を取っていました。
つまりこんな感じです。
# access.logからアクセス数をIP毎にソートする
$ ls -l | grep "access\.log" | awk '{print $NF}' > access_log_list.txt
$ while read FILE ; do echo "==== ${FILE} ====" ;zcat ${FILE} | awk '{print $1}' | sort | uniq -c ; done < access_log_list.txt
これでも良いのですが、私はこのaccess_log_list.txt
みたいなのが溜まってしまうのが嫌なのです。私は面倒くさがりなので、大抵この手のファイルは残ってしまいます。
ということで、上記の処理をワンライナーにしましょう。
$ ls -1 | grep 'access\.log' | while read FILE ; do echo "==== ${FILE} ====" ; zcat ${FILE} | awk '{print $1}' | sort | uniq -c ; done
これでできます。なんてことはない、ただlsの結果をパイプでつないでwhileに渡すだけなのですが。
昔の自分はこういうのを知らなくていちいちスクリプトにしていた、という若干恥ずかしいお話でした。おしまい。
スポンサーリンク
2020/12/24 00:45:28
Celebrex From Canada usacybes [url=https://bansocialism.com/]overnight cialis delivery[/url] glicky levitra medicamento para impotencia