IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

WSLで始めるUbuntu

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第7回 パイプでコマンド引数を渡してみよう (宮崎悟) 2019年4月

前回はgrepなどで使用する正規表現について述べました。 今回は、パイプでコマンドに引数を渡す方法について説明しようと思います。

xargs コマンド

xargs コマンドは、パイプからの入力を引数として指定したコマンドを実行します。 何も指定しないときは、複数行も1行の引数として渡すことが出来ます。以下の例では、ls -1 の複数行の引数を引数として渡しています。

$ ls -1 
abc.txt
error
error.txt
files
out
$ ls -1 | xargs echo
abc.txt error error.txt files out

また、以下のようなオプションを指定可能です。

オプション 説明
-a ファイル 標準入力の代わりに指定したファイルから引数を取得する
-d delim 入力した文字列を、指定したdelimで区切って引数を渡す
-n 数字 コマンドに渡す引数の最大値を指定する
-p インタラクティブにコマンド実行の有無をy/n で指定する
-v コマンド実行時に、実行するコマンドを表示する
-0 or --null 入力文字列の区切りを「\0」とする
find コマンド

find コマンドは、指定したディレクトリ以下のファイルを検索するコマンドになります。ディレクトリは複数指定でき、何もオプションを指定しない場合は、指定したディレクトリ以下のすべてのファイルを出力します。

find ディレクトリ [オプション]

findコマンドには複数のオプションがありますが、代表的なものを以下に挙げます。

オプション 説明
-name 名前 名前で指定したファイルを探す(""や''で括ることで、ワイルドカードを指定可能)
-user ユーザ名(ユーザID) ユーザ名もしくはユーザIDが一致するファイルを探す
-group グループ名(グループID) グループ名もしくはグループIDが一致するファイルを探す
-type [cdflps] 指定した種別のファイル(c=blockファイル、d=ディレクトリ、f=通常ファイル、l=リンク、p=名前付きパイプ、s=ソケットファイル)を探す
-newer ファイル 指定したファイルよりも新しいファイルを探す
-perm モード ファイルのパーミションが指定したモードに完全一致したファイルを探す
パーミションは、777のような8進数3桁、もしくはg=w (groupにのみ書き込み可能なファイル)などで指定する
-perm -モード ファイルのパーミションが指定したモードにビット論理和で一致するファイルを探す
パーミションが-644 もしくは-u=rw,g=r,o=r の場合は、オーナ権限がrwで、それ以外がrであるファイル(666や777 のファイル)が一致する
-perm /モード ファイルのパーミションが指定したモードにどれかでも一致するファイルを探す
パーミションが/220もしくは、/u=w,g=w の場合は、オーナとグループに書き込み権限のあるファイル(666,777,460など)が一致する
-perm +モード 現在は非推奨の指定方法であるため説明を割愛する
-size [+-]サイズ 指定したサイズとファイルサイズが一致するファイルを探す
+サイズで指定サイズ以上、-サイズで指定サイズ以下のファイルを探す
-mmin [+-]分 更新時刻が指定分前のファイルを探す
+分を指定すると、指定した分より古いファイルを、-分を指定すると指定した分より新しいファイルを探す
-mtime [+-]日 更新時刻が指定日前のファイルを探す
+日を指定すると、指定した日より古いファイルを、-日を指定すると指定した日より新しいファイルを探す
-and -and で区切る前後の条件の論理積を条件として使用してファイルを探す
-or -or で区切る前後の条件の論理和を条件として使用してファイルを探す
\! \!のあとの条件を満たさないファイルを探す
-exec コマンド {} ; 条件を満たしたファイルに対して、1度ずつコマンドを実行する
このとき、コマンドにオプションなどを指定でき、ファイルは{}部分に指定される
-delete 条件を満たしたファイルに対して、削除を実行する
-print 条件を満たしたファイルを標準出力に空白区切りで出力する
-print0 条件を満たしたファイルを標準出力に空文字「\0」区切りで出力する
-ls 条件を満たしたファイルを詳細出力する
このときのフォーマットはls -lとは異なる
find と xargsの組み合わせ

find と xargsを組み合わせることで、検索したファイルに対して任意のコマンドを一度に実行することが可能です。これは複数ファイルを引数に取れるコマンドを実行する際に特に有用です。これらについては次回のコラムで詳しく説明したいと思います。

では、次回のコラムをお楽しみに。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes