このコードで乱数を生成する方法は? $ RANDOMを使用しようとしましたが、その数は変わりません。どのように改善する?あなたがfind
コマンドを実行すると$RANDOM
関数呼び出しは、その結果に置換されているので起こりどのように見つけるとsedと乱数を生成するには?
find . -type f -exec sed -i 's/<field name=\"test/<field name=\"test$RANDOM/g' {} \;
このコードで乱数を生成する方法は? $ RANDOMを使用しようとしましたが、その数は変わりません。どのように改善する?あなたがfind
コマンドを実行すると$RANDOM
関数呼び出しは、その結果に置換されているので起こりどのように見つけるとsedと乱数を生成するには?
find . -type f -exec sed -i 's/<field name=\"test/<field name=\"test$RANDOM/g' {} \;
は、find
はsed
コマンドを実行していないとき。
できることはsed -i ...
の部分をスクリプトに入れて、代わりにfind
に渡します。
例えば、subst.sh
が含まれている場合:$RANDOM
はファイルがある何度でも評価されようとしているので、
#!/bin/bash
r=$RANDOM
sed -i "s/<field name=\"test/<field name=\"test${r}/g" [email protected]
が続い
find . -type f -exec ./subst.sh {} \;
は、トリックを行う必要があります。
(乱数はまだある特定のファイル間で同じになりますが、それは別のファイルのための明確なことに注意してください。)
それは動作します!ありがとう!申し訳ありませんが、私はbashの新機能ですが、$ @をどういう意味ですか? – user1005101
これは、スクリプトに対するすべてのコマンドライン引数の配列です。この場合、最初の引数を渡すとsufficedとなり、$ 1を書くこともできます。 – Philippe
あなたも、この「1行」の方法でスクリプトファイルを作成しないようにすることができ、例:
function FUNCtst() { echo "tst:$1";echo "tst2:$1"; }; export -f FUNCtst; find -exec bash -c 'FUNCtst {}' \;
はそう、あなたは:
を呼び出していないと、ファイルを作成する必要はbashを実行見つけます!
HTML/XMLの正規表現による解析は避けてください。 –
私を説明することができます、なぜですか? – user1005101
理由の簡単なリストについては、[この回答](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454)を参照してください。 –