ディレクトリ
バッチファイルのためのsed 3.検索はgrep検索した文字列を置換します
コマンドパラメータとして結果1.linuxコマンド
1.記号: ``
名:トランスマーク、区切り
位置:トランス引用符(「)()混乱同じ単一引用符ではありません、キーボードの左側にある文字、番号1の左上隅に、一般的には」
バッククォート:効果文字列がコマンドラインシェルとして解釈されるまで、実行されたとき、第1のシェルは、コマンドラインを実行し、その標準は、部分(2つの抗引用符を含む)全体の出力バッククォートを交換します
使用:需要の結果としては、複数のパラメータの1つで使用することができる
例えば:
`Date`エコー$
木3月7日夜9時31分11秒CST 2013
2. $()
と同じ効果をas``
3.コマンド:xargsの
xargsのコマンドは、フィルタパラメータに渡されますが、ツール複数のコマンドを組み合わせたものです。これは、データストリームに十分に小さいブロックに分割され、そしてフィルタがコマンドを処理する容易にします。通常、xargsのか、標準入力パイプからデータを読み取るが、それはまた、出力ファイルからデータを読み取ることができます。デフォルトのコマンドxargsが改行とのギャップが含まれていますxargsのの入力にパイプ手段エコー、ですが、とxargsの、ラップのプロセスによって空白に置き換えられます。
DATE $ | xargsのエコー
木3月7日午後9時47分12秒CST 2013
パイプラインとxargsの差:
パイプは、「後ろに標準出力、標準入力の前に」を達成することである
xargsのは「標準コマンドへの入力パラメータとして」達成することである
-execパラメータ4.検索コマンド
、バッファを介して、コマンドラインパラメータとしてフロント出力:xargsのその後、コマンドパラメータを呼び出して
、我々は、ビューのオプションxargsのポイントを無視した場合、その後、
xargsのCM2 | CM1は
平方センチメートル`cm1`:単にとして見ることができる
だけでなく、rm`発見のための...`対処するxargsのRM | ....見つけ、したがって、 。
しかし、あまりにも多くの検索結果が最大数引数RMが受け入れられる超えて失敗する可能性がある。
xargsの利点:それは、バッチプロセスであるため、効率が比較的高いので(バッファを介して)
xargsの欠点を:パラメータの数に起因するがあってもよいですコマンドの後ろにつながるあまりにも多くの(数千)、失敗した
場合に置き換え検索.... -exec RM {} \;次いで、
RMが対処する項目「一つずつ」、及びそのような心配なので
--- ------------
ます。https://blog.csdn.net/permike/article/details/51957003上記元のリンクを参照してください。
差2.execとxargsの
xargsのコマンドラインパラメータ上記、コマンドパラメータの後続の呼び出しのようなバッファおよび出力を介して
xargsのは、それから、ビューのオプションを無視する場合は
CM1を| xargsがCM2
単に見ることができます: `cm1`平方センチメートル
。したがって、....見つける| xargsのRMもrm`発見のための...`に対処するために
見つけた場合、しかし、あまりにも多くの結果は、引数が失敗受け入れるかもしれないRMの最大数を超えてもよい。
xargsの利点を:それは、バッチプロセスであるため、効率は(バッファを介して)比較的高いので、
xargsのが欠点:起因パラメータ(数千の過剰な数にあってもよいです万人)、コマンドの後ろにつながるが失敗した
交換した場合のfind ....-幹部のrm {} \;そして、
RMはに対処するためのアイテム「一つずつ」、およびそのような心配があるため、
現在のディレクトリに例:(外観が含まれていますファイルハロー文字)、Cファイルを見つけハロー含まれている
1。最も愚かな方法:こんにちはグレップ* * / * * / * / *
。Grepの-i "こんにちは"の* .c * / C * * / * / * C.
2。使用Execは、
[ADMIN @ b2b_search_115テスト] "こんにちは"型$ F -print -exec grepの検索{} \ ;.
./File/test3
こんにちは
コマンドに./test1
こんにちは
./test2
。3。xargsのを使用します
[管理者@ b2b_search_115テスト] $を発見。-type F -print | こんにちはgrepのxargsの
./file/test3:hello
./test1:hello
パス名-options [-print -exec -ok]を見つけます
パラメータは、
パス名:ディレクトリパスを、あなたが探しているコマンドを見つけること。たとえば、現在のディレクトリを示すために、/根系が示されています。
-print:出力ファイルは標準出力にfindコマンドと一致します。
-exec:findコマンドは、パラメータファイルの一致によって与えられたシェルコマンドを実行します。「コマンド」に、これらのコマンドの形式{} \;、と注意{} \;の間のスペース。
-ok:-execアクションと同じ、しかしより安全なモードで各コマンドを実行する前に、パラメータによって指定されたシェルコマンドを実行するために要求されますが、ユーザーが実行するかどうかを決定することを可能にします。
コマンドオプションを見つけます
-name:ファイル名でファイルを検索。
-perm:ファイルのパーミッションでファイルを検索します。
-prune:使用findコマンドを作成するには、このオプションは、現在あなたが-depthオプションを使用する場合は、-prune findコマンドは無視され、ディレクトリ検索に指定されていません。
-user:ファイルを検索するために、ファイルの所有者によると。
-group:グループに応じたファイルは、ファイルを検索するために属しています。
-mtime -n + N:ファイルの変更時間に応じてファイルを検索するには、 - nは今の時間を変更するために内からファイルを表し、N日、+ nは今のn日前から時間を変更するには、そのファイル。コマンドも-atimeと-ctimeオプション、しかし、彼らは-mtimeとオプションです。
-nogroup:有効なファイルが内の/ etc /グループに存在しないグループに属しているグループに属しないファイルを検索します。
-nouser:所有者は、ファイルに存在しないことを、正当な所有者なしでファイルを検索します/ etc / passwdファイルインチ
!-newer FILE1 FILE2:ファイルのファイルよりも古い経時変化のために見えますが、新しいファイルfile1 FILE2は
、ファイルの特定のタイプを見つける-type
-ブロックデバイスファイルBを。
D -ディレクトリ。
C -キャラクタデバイスファイル。
P -パイプファイル。
L -シンボリックリンクファイル。
F -通常のファイル
-size N:[C]のルックアップファイルブロック長nはファイル、バイト単位でのファイルの長さは、cとの時間を示します。
-depth:ファイルを検索するときは、まず現在のディレクトリ内のファイルを探し、そのサブディレクトリを見てください。
-fstype:ファイルシステムの特定のタイプにあるファイルは、ファイルシステムの種類は、通常、設定ファイル/ etc / fstabに見つけることができる検索、コンフィギュレーション・ファイルは、ファイルシステムについては、このシステムの情報が含まれ
-mountを:ファイル検索でとき、クロスファイルシステムのマウントポイントをません。
-follow:あなたは、コマンドの出会いにシンボリックリンクファイルを見つけ、ファイルへのリンクポイントをトレースした場合。
-cpio:テープデバイスへのバックアップにこれらのファイルを一致させる使用cpioコマンドファイル
見つけます
カレントディレクトリを検索し、サブディレクトリ名は、ファイル内の大文字で始まる
発見。-Name「[AZ] * 」-print
ファイルホストの先頭に/ etcディレクトリ内のファイル名を検索し
、検索の/ etc -name「ホスト*」-print
EXEC
実行するには、exec一緒に一致するすべてのファイルを転送するためのコマンドを見つける
数分を実行するので、findコマンドの後、幹部に渡すことができるコマンドの長さに制限があり、エラーのオーバーフローがあるだろういくつかのシステムを
xargsのではなく、各GETにファイルの一部だけを命じます完成
すべての一般的なファイルは、カレントディレクトリの一致した
検索型F -exec lsの-l {} \;を
前の5つのファイルの時間/ logsディレクトリの変更を探し、それらを削除
見つけるログ型F -mtime 5 -execのrm {} \;
.logに、5日以上の変化のファイルの時間で現在のディレクトリ名両端にあるすべてのファイルを検索し、最初のプロンプト削除する前にそれらを削除する
検索を。-Name「* .logの」-mtime 5 -okのrm { } \;
最初に一致するすべての「passwdの*」ファイルと呼ばれるファイル、およびユーザーのSAM、これらのファイルがあるかどうかを確認するためにはgrepコマンドを実行する
/見つけるなど-name「passwdの*」 -exec grepの「SAMは」{} \;
現在のユーザのホームディレクトリ内のすべてのファイルを検索
検索はHOMEを$ -print
-print〜検索を
カレントディレクトリのファイルの所有者は読み取りおよび書き込みアクセス、および他のユーザーとユーザーがファイルの読み取り許可を持つグループのファイルに属していて
発見し-type F -perm 644 -exec lsの-l {} \;
0の通常のファイル長として、システム内のすべてのファイルを検索し、リストは完全なパスを
見つける/型F -size 0 -exec lsの -l {} \;
根系グループに属するすべてのファイルを検索し
たルート-exec lsの-lを{} -基見つける \;
ディレクトリ内のすべてのカレントディレクトリを検索およびソート
ソート|。検索-type dを
xargsの
パラメータ入力命令にリア出力の前に
EXEC xargsのを使用して、ユーザが一致したファイルへの実質的に任意のコマンドを実行することを可能にします。
すべての通常のファイルシステムを検索し、その後、それらが属するファイルの種類をテストするためのコマンドxargsのを使用して
xargsはファイル|。-type F -print見つけます
システム全体のメモリダンプファイル(コアダンプ)を検索し、ファイルに結果が/tmp/core.log保存
見つける/ -name「コア」-print | xargsのエコー「」> /tmp/core.log
読み取り、書き込みと現在のディレクトリ内のすべてのユーザーのファイルを検索し、実行権限を、およびに対応する書き込み権限を回復する
。xargsのchmodコマンド| -perm -7 -printを見つける OW
するためにはgrepコマンドを使用して、すべての一般的なファイル内の単語のホスト名を検索
見つける-type F -print |。xargsのはgrep 「ホスト名」
現在のディレクトリの下のすべてのファイルの統計サイズ、最寄りのバイト含むサブディレクトリ
Fを-type ./検索を| xargsのLS -l | awkのBEGINサイズ= {0} + {サイズ} = $ 5; END {サイズ}印刷。 "
- ---------------
免責事項:この記事は元の記事CSDNブロガー「offbye」で、CC 4.0 BY-SAの著作権契約書に従って、再現し、元のソースのリンクと、この文を添付してください。
オリジナルリンクします。https://blog.csdn.net/offbye/article/details/7053069
バッチファイルのためのsed 3.検索はgrep検索した文字列を置換します
レコードを忘れがちです。
grepの "RCN" | | -nameに "* .xmlファイル" を見つけるxargsのgrepのテスト文字1 -l | xargsのは、-i sedの "S /文字テスト1 /テストキャラ2 / gで"
言わない見つけます。
最初のgrepは、xargsのに必要はありませんが、なぜですか?このコンテンツは、ファイルを見つけることはgrepではなく、パスがファイルを見つけるためにかどうかを確認するために作られたパス自体は、「RCN」が含まれているため、
第二のgrep、必要性のxargsは、なぜですか?これは、むしろファイルパスよりも、ファイルの内容を検索コンテンツが存在するファイル「の文字テスト1」の文字列を見つけることはgrepであるため、
次いで、-lパラメータは、出力ファイルのパスを示しています。
最後に、「文字テスト1」でこのファイルを置き換えるためにsedを「2文字のテスト。」
-iのsed:ファイルの変更内容は、出力端子には、ない示します。
コンプリート。
ヒント:
グレップ| -name「* .xmlファイル」を見つけ、それを実行するための最良の 「RCN」| xargsがgrepし、望ましい結果に結果かどうかを確認するには1つの文字のテストを、とのsedの処理と相まって、
------- ---------
免責事項:この記事は元の記事CSDNブロガー「EmMouse」で、CC 4.0 BY-SAの著作権契約書に従って、元のソースのリンクと、この文を添付してください、再現。
オリジナルリンクします。https://blog.csdn.net/EmMouse/article/details/53672318