’, Â, � etc... How to fix strange encoding characters in WP or other SQL database
目次:
- Linux
xargs
コマンドの使用方法 - コマンドを表示してユーザーにプロンプトを表示する方法
- 引数の数を制限する方法
- 複数のコマンドを実行する方法
- 区切り文字を指定する方法
- ファイルからアイテムを読み取る方法
xargs
でxargs
を使用する- xargsを使用して空白文字を削除する
- 結論
xargs
ユーティリティを使用すると、標準入力からコマンドを作成して実行できます。 通常、パイピングを通じて他のコマンドと組み合わせて使用されます。
xargs
を使用すると、
mkdir
や
rm
などのコマンドラインユーティリティへの引数として標準入力を提供できます。
このチュートリアルでは、
xargs
コマンドの使用の基本について説明します。
Linux
xargs
コマンドの使用方法
xargs
、空白または改行で区切られた標準入力から引数を読み取り、入力をコマンドの引数として使用して、指定されたコマンドを実行します。 コマンドが提供されない場合、デフォルトは
/bin/echo
です。
xargs
コマンドの構文は次のとおりです。
xargs]
xargs
を使用する最も基本的な例は、
xargs
へのパイプを使用して空白で区切られたいくつかの文字列を渡し、それらの文字列を引数として使用するコマンドを実行することです。
echo "file1 file2 file3" | xargs touch
上記の例では、標準入力を
xargs
パイピングし、各引数に対して
touch
コマンドを実行して、3つのファイルを作成します。 これは、実行する場合と同じです。
コマンドを表示してユーザーにプロンプトを表示する方法
コマンドを実行する前に端末で印刷するには、
-t
(--
--verbose
)オプションを使用します。
echo "file1 file2 file3" | xargs -t touch
touch file1 file2 file3
echo "file1 file2 file3" | xargs -p touch
y
または
Y
と入力して、コマンドを確認して実行します。
touch file1 file2 file3 ?…y
このオプションは、破壊的なコマンドを実行するときに役立ちます。
引数の数を制限する方法
デフォルトでは、コマンドに渡される引数の数はシステムの制限によって決まります。
-n
(--
--max-args
)オプションは、指定されたコマンドに渡される引数の数を指定します。
xargs
は、すべての引数がなくなるまで、指定されたコマンドを必要な回数実行します。
次の例では、標準入力から読み取られる引数の数は1に制限されています。
echo "file1 file2 file3" | xargs -n 1 -t touch
以下の詳細出力からわかるように、touchコマンドは引数ごとに個別に実行されます。
touch file1 touch file2 touch file3
複数のコマンドを実行する方法
xargs
で複数のコマンドを実行するには、
-I
オプションを使用します。
-I
オプションの後に
replace-str
定義することで機能し、
replace-str
すべての出現はxargsに渡された引数に置き換えられ
replace-str
。
次の
xargs
例は2つのコマンドを実行します。最初に
touch
を使用してファイルを作成し、次に
ls
コマンドでファイルをリストします。
echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'
-rw-r--r-- 1 linuxize users 0 May 6 11:54 file1 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file2 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file3
replace-str
一般的な選択は
%
です。 ただし、
ARGS
などの別のプレースホルダーを使用できます。
echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'
区切り文字を指定する方法
-d
(--
--delimiter
)オプションを使用して、カスタム区切り文字を設定します。これは、1文字または
\
始まるエスケープシーケンスのいずれかです。
使用している次の例
;
区切り文字として:
echo "file1;file2;file3" | xargs -d ; -t touch
ファイルからアイテムを読み取る方法
xargsコマンドは、標準入力の代わりにファイルから項目を読み取ることもできます。 これを行うには、
-a
(
-a
--arg-file
)オプションに続けてファイル名を使用します。
次の例では、
xargs
コマンドは
ips.txt
ファイルを読み取り、各IPアドレスにpingを実行します。
8.8.8.8 1.1.1.1
また、
xargs
に一度に1行を読み取るように指示する
-L 1
オプションも使用しています。 このオプションを省略すると、
xargs
はすべてのIPを単一の
ping
コマンドに渡し
ping
。
xargs -t -L 1 -a ips.txt ping -c 1
ping -c 1 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=50 time=68.1 ms… ping -c 1 1.1.1.1 PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data. 64 bytes from 1.1.1.1: icmp_seq=1 ttl=59 time=21.4 ms
xargs
で
xargs
を使用する
xargs
は、ほとんどの場合、
find
コマンドと組み合わせて使用され
find
。
xargs
を使用して特定のファイルを検索し、
xargs
を使用してそれらのファイルに対して操作を実行できます。
改行またはその他の特殊文字を含むファイル名の問題を回避するには、find
-print0
オプションを常に使用します。これにより、
find
は完全なファイル名の後にヌル文字を出力します。 この出力は、
-0
、(--
--null
)オプションを使用して
xargs
によって正しく解釈できます。
次の例では、
find
は
/var/www/.cache
ディレクトリ内のすべてのファイルの
/var/www/.cache
、
xargs
はファイルパスを
rm
コマンドに渡します。
find /var/www/.cache -type f -print0 | xargs -0 rm -f
xargsを使用して空白文字を削除する
xargs
は、指定された文字列の両側から空白を削除するツールとしても使用できます。 文字列を
xargs
コマンドにパイプするだけで、トリミングが実行されます。
echo " Long line " | xargs
Long line
これは、シェルスクリプト内の文字列を比較するときに役立ちます。
#!/bin/bash VAR1=" Linuxize " VAR2="Linuxize" if]; then echo "Strings are equal." else echo "Strings are not equal." fi ## Using xargs to trim VAR1 if]; then echo "Strings are equal." else echo "Strings are not equal." fi
Strings are not equal. Strings are equal.
結論
xargs
は、コマンドをビルドおよび実行できるLinuxのコマンドラインユーティリティです。
各
xargs
オプションの詳細については、xargsのマニュアルページを参照してください。