4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

僕が使うワンライナーレシピ

Posted at

すろっくさんだよ。

さすがに平成も終わりに差し掛かるのでperlでWebアプリケーション作ろうとは思わないんですけど、ワンライナーはたまにやります。Perlだけだとフフッってなるのでシェルもいれますね。

Perl編

オプションです。

  • w 警告
  • e 一行で書くぜ宣言
  • n 読み込みループ(出力なし)
  • p 読み込みループ(出力あり)
  • l 行末処理
  • M モジュールをロード

適当につかってるやつです。。

ファイル名を指定してファイルの中の文字列1を文字列2に置換します。

perl -pi -e "s/文字列1/文字列2/g" [ファイル名]

Linuxコマンドのcatと同じ挙動です。ファイル名をただ標準出力に出します。

perl -wpl -e "” [ファイル名]

catして一部を置換します。最初のと挙動は同じかな。

perl -wnl -e s/<元ワード>/置換ワード/g; print; <filename>

こっちも同じ挙動ですね

perl -wpl -e s/<元ワード>/置換ワード/g; <filename>

nは出力なしなので、標準出力させたければwplと書く方がいいです。nでやったあと出力しようとすると最後にprintって書くので面倒です。
改行を全ての出力につけます。改行があればなにもしません。

perl -wnl -e "print $.;” <ファイル名>

$なんとかの扱いは以下ですね。

  • $   変数
  • $.  レコード番号]
  • $_ 読み込んだ内容全部

ファイルを行番号つきで標準出力します。

perl -wnl -e 'printf "$.: ";print;’ <ファイル名>

grepがわり。

perl -wnl -e /[検索したいワード]/ and print; <filename>

シェル編

ディレクトリの下のファイルを一括して取り出して何日以上前のをなんか処理します。
mtimeで日にちを指定してください。

find /var/log/ -mtime +14  -exec rm -f {} \;

対象プロセスを全殺しします。
pidファイルを無くしちゃって、でもプロセスが大量に動いてて一個一個kill -9するのまじめんどくセーみたいなときに使います。

pgrep -f "プロセス名の一部" | xargs kill

こっちでもいけます。

ps aux | grep "プロセス名の一部" | awk '{print $2;}' | xargs kill

思い出したら追記します。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?