xargsコマンドlinux次元開発での使用
xargsコマンドは、運用次元開発で使用されます.
クラスタのメンテナンス開発の過程で、実際の開発シーンに基づいて、linuxローカル上のファイルでもhdfs上のファイルでも、xargsコマンドで一つ一つ処理することができます.ここでxargsコマンドは、メンテナンス開発中の小さなツールとして、バッチファイルをすばやくDIY処理し、非常に柔軟です.ref21
xargsコマンド
xargsコマンドは、他のコマンドにパラメータを渡すフィルタであり、複数のコマンドを組み合わせたツールでもあり、単行コマンドを構築する重要なコンポーネントの1つです.xargsのデフォルトコマンドはechoで、スペースはデフォルトのデリミタです.
一般的な機能:
1.出力データは、個々に受信し、他のコマンドDIYで処理する2に渡す.出力されたデータをフォーマットして再出力し、eg:N行が単行になり、単行がN行になり、各行M文字になる.
基本用法【-n,-d,-I,-t】
xargsは置換ツールとして、入力データを読み出して出力を再フォーマットします.
xargs結合find使用
find-print 0とxargs-0の原理と使い方
-print 0とxargs-0が使われていますが、これは何ですか?資料ref 2を探して、以下の説明を見つけました.
find . -type -f -name ‘*.log’ |xargs rm -rf
findとxargsを一緒に使用する場合、このコマンドがファイル名にスペースや改行文字がある場合、エラーが発生します.xargs識別文字セグメントの識別はスペースまたは改行であるため、1つのファイル名にスペースまたは改行がある場合、xargsはそれを2つの文字列に識別し、自然にエラーが発生します.
この場合-print 0と-0が必要です.
質疑応答
find-print 0は、デフォルトで改行文字を付けるのではなく、findの各結果の後にNULL文字を追加することを示します.findのデフォルトでは、各結果の後に'''が追加されるので、出力結果は1行1行です.-print 0を使用すると1行になります
xargs−0は、xargsがNULLを区切り記号として使用することを示す.これで前後の組み合わせにスペースや改行文字の間違いはなくなります.NULLを区切り文字として選択したのは、一般的なプログラミング言語がNULLを文字列の終わりのフラグとしているため、ファイル名がNULLで終わることはあり得ないため、万全を期しています.
私たちが推奨している比較保険の命令を比較すると
find . -type -f -name ‘*.log’ -print0 |xargs -0 rm -rf
ディレクトリの下にあるshellスクリプトの数を統計します.
すべてのログ・ファイルを検索し、圧縮します.
ブログ参照↩︎
ブログ参照↩︎
クラスタのメンテナンス開発の過程で、実際の開発シーンに基づいて、linuxローカル上のファイルでもhdfs上のファイルでも、xargsコマンドで一つ一つ処理することができます.ここでxargsコマンドは、メンテナンス開発中の小さなツールとして、バッチファイルをすばやくDIY処理し、非常に柔軟です.ref21
xargsコマンド
xargsコマンドは、他のコマンドにパラメータを渡すフィルタであり、複数のコマンドを組み合わせたツールでもあり、単行コマンドを構築する重要なコンポーネントの1つです.xargsのデフォルトコマンドはechoで、スペースはデフォルトのデリミタです.
一般的な機能:
1.出力データは、個々に受信し、他のコマンドDIYで処理する2に渡す.出力されたデータをフォーマットして再出力し、eg:N行が単行になり、単行がN行になり、各行M文字になる.
基本用法【-n,-d,-I,-t】
xargsは置換ツールとして、入力データを読み出して出力を再フォーマットします.
-n
jacky@xingxing myscripts % cat exa.txt
a b c
d e f
g h i
--- ,
jacky@xingxingmyscripts % cat exa.txt|xargs
a b c d e f g h i
jacky@xingxing myscripts % cat exa.txt|xargs echo
a b c d e f g h i
--- -n ,
jacky@xingxing myscripts % cat exa.txt|xargs -n2
a b
c d
e f
g h
i
-d 【ps:mac -d ,linux , 】
echo "aaxbbxccxddx" |xargs -dx
aa bb cc dd
-I 【 -I , ,
xargs 】
ls ./
a.txt
b.txt
c.txt
ls ./|xargs -I {} mv {} {}.bak
a.bxt.bak
b.txt.bak
c.txt.bak
-t 【 】
xargs結合find使用
, rm -rf aa bb
cc ..., , xargs
eg:
find . -type -f -name '*.log' -print0 |xargs -0 rm -rf
find-print 0とxargs-0の原理と使い方
-print 0とxargs-0が使われていますが、これは何ですか?資料ref 2を探して、以下の説明を見つけました.
find . -type -f -name ‘*.log’ |xargs rm -rf
findとxargsを一緒に使用する場合、このコマンドがファイル名にスペースや改行文字がある場合、エラーが発生します.xargs識別文字セグメントの識別はスペースまたは改行であるため、1つのファイル名にスペースまたは改行がある場合、xargsはそれを2つの文字列に識別し、自然にエラーが発生します.
この場合-print 0と-0が必要です.
質疑応答
find-print 0は、デフォルトで改行文字を付けるのではなく、findの各結果の後にNULL文字を追加することを示します.findのデフォルトでは、各結果の後に'''が追加されるので、出力結果は1行1行です.-print 0を使用すると1行になります
xargs−0は、xargsがNULLを区切り記号として使用することを示す.これで前後の組み合わせにスペースや改行文字の間違いはなくなります.NULLを区切り文字として選択したのは、一般的なプログラミング言語がNULLを文字列の終わりのフラグとしているため、ファイル名がNULLで終わることはあり得ないため、万全を期しています.
私たちが推奨している比較保険の命令を比較すると
find . -type -f -name ‘*.log’ -print0 |xargs -0 rm -rf
ディレクトリの下にあるshellスクリプトの数を統計します.
find . -type f -name "*.sh" -print0 | xargs -0 wc -l
すべてのログ・ファイルを検索し、圧縮します.
find . -type f -name "*.log" -print | xargs tar -czvf logs.tar.gz
ブログ参照↩︎
ブログ参照↩︎