$ hg status
そして
$ hg status --ignored
非常によく似た出力を提供します。 hg status --all(またはsvnのsvn status --no-ignore)があるかのように、それらをawkにフィードできるように連結したいと思います。
私は次のようなことを考えています:
$ echo "$(hg status)" "$(hg status --ignored)" | awk ' ( $1 == "?" ) || ( $1 == "I") { print $2 }' | xargs rm -r
「確かに非常にきれいにする」コマンドを作成しますが、改行が欠落しているか何かが原因で、ファイルが残ることがあります。
サブシェルを使用できます。
( hg status; hg status --ignored ) | awk '( $1 == "?" ) || ( $1 == "I") { print $2 }' | xargs rm -r
コマンドをグループ化するための中括弧 を使用します:
$ { echo first line; echo second line; } | grep "line"
first line
second line
(からの回答として投稿 camhのコメント )
残りのhgステータスフラグを使用して、本当に必要なものを表示できます。
hg status -uriamn
これは、不明なファイル(u)、削除されたファイル(r)、無視された(i)、追加された(a)、変更された(m)を示し、ステータスプレフィックスを表示せずに表示します。
これは私のために働きます:
echo $(a)$(b)
「」を追加すると、区切り文字を追加できます。例:
echo "$(./gethostname.sh)|($(./getip.sh);"
私はこれをOpenwrtで使用して、IP設定をブロードキャストします。
echo "$( uci get system.@system[0].hostname )|$( ip addr | grep inet | grep br-lan | cut -d ' ' -f 6 | cut -d '/' -f 1 );" | socat - UDP-DATAGRAM:255.255.255.255:4999,broadcast ;