タイトルの通りですが、xargsコマンドの便利さを紹介する記事を書いてみました。xargsは私が大好きなコマンドの一つで、標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。 例えばfindで見つけたファイルを全部削除したい場合、xargsなしでも下記のように書くことができます。
タイトルの通りですが、xargsコマンドの便利さを紹介する記事を書いてみました。xargsは私が大好きなコマンドの一つで、標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。 例えばfindで見つけたファイルを全部削除したい場合、xargsなしでも下記のように書くことができます。
このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日本のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2024年5月時点の調査。
<?php $log_file_path = $_SERVER['argv'][1]; $check_line_number = 30000; while (true) { $time = time() - 60; $date_str = date('d/M/Y:H:i', $time); if (file_exists("$log_file_path")) { $cmd = "tail -n {$check_line_number} {$log_file_path} | fgrep '{$date_str}' | fgrep php | fgrep -v png | fgrep -v jpg | wc -l"; } echo date('Y/m/d H:i', $time) ." "; system($cmd); sleep(60); }
#!/bin/sh foo=5 #ここで$はいらない echo $foo =の両端に空白は許されない 環境変数も$をつけることで出力される。 #!/bin/sh echo $HOME tcshの場合, #!/bin/tcsh set foo = 5 echo $foo あるいは #!/bin/tcsh set foo = 5;echo $foo bashの場合, #!/bin/bash foo=5 # 代入時に空白は許されないらしい。 echo $foo あるいは #!/bin/bash foo=5;echo $foo 次のようにバッククォート"`"を使用することで, 各実行コマンドの出力を変数に代入できる。 foo=`echo test | sed 's/est/ree/g'` bar=`echo test | cut -c1-3` # substrの代わりになる hoge=`wc te
Cakeコマンドを自作できるらしいので、やってみた。 単純にバッチとかもそうだけど、テスト用のデータを作ったり、本番にアップしたり、いろんな用途に使えると思った。 まずはHelloWorld的な。 app/vendors/shells/test.php をつくる。 <?php class TestShell extends Shell { function main() { $this->out( "いらっしゃいませ" ); $this->hr(); $this->out( "ごちゅうもんをどうぞ" ); } } ?> 実行! appのカレントディレクトリにいる場合 $ /home/htdocs/cake_installed/cake/console/cake test Welcome to CakePHP v1.2.0.7296 RC2 Console -----------------
シェルスクリプトを実行しようと思ったら -bash: ./aaa.sh: /bin/sh^M: bad interpreter: No such file or directory と怒られた。 /bin/shはきちんと存在する。なんでだろ? ググってみたら、MS-DOS形式のファイルを持ってくるときに改行がMS-DOS形式のままになっていると、こういうことが起きるらしい。 いつもと違う方法でやったのがいけなかったか。(^^ゞ 改行を変換するプログラムがないか、ググって調べてみる。 「nkf」というプログラムがあった。 apt-getで入手。 改行を変換するには、 nkf -Lu -d aaa.sh > aaa.sh.nnn こんな感じでするらしい。 「-Lu -d」の部分がunix用改行を出力するオプション。 ファイル名とアクセス権を変更し、実行してみる。 オッケー!
Next: Contents Up: UP Contents Bourne Shell自習テキスト 木村 孝道 平林 浩一 監修 1993年6月21日 Contents シェルとは シェルの機能 プログラムの実行 ファイル名の置換(展開) 入出力の切り換え(I/O redirection) ヒアドキュメント(here document) エラー出力を標準出力にマージする パイプ機能 コマンドの区切り文字 コマンドのグルーピング バックグランド処理 ユーザの環境設定 HOME Prompt String(PS1,PS2) PATH TERM .profileによるログイン環境の設定 インタプリタ型のプログラミング言語 シェルプログラミングの基礎 シェルスクリプトと実行方法 シェル変数 シェル変数の初期化と参照 エクスポート変数 readonly変数 引用符 単一引用符 ' 二重引用
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く