$ hg status
和
$ hg status --ignored
给出非常相似的输出。我想连接它们以便我可以将它们提供给awk,好像有一个 hg status --all (或svn的 svn status --no-ignore )
我在想:
$ echo "$(hg status)" "$(hg status --ignored)" | awk ' ( $1 == "?" ) || ( $1 == "I") { print $2 }' | xargs rm -r
制作一个'make very clean really'命令,但它似乎偶尔会留下一个文件,可能是因为换行符丢失或其他原因。
答案 0 :(得分:29)
使用curly braces to group commands:
$ { echo first line; echo second line; } | grep "line"
first line
second line
(作为camh's comment的答案发布)
答案 1 :(得分:27)
您可以使用子shell:
( hg status; hg status --ignored ) | awk '( $1 == "?" ) || ( $1 == "I") { print $2 }' | xargs rm -r
答案 2 :(得分:6)
您可以使用其余的hg状态标志来显示您真正想要的内容:
hg status -uriamn
显示未知文件(u),删除文件(r),忽略(i),添加(a),修改(m),并且不显示状态前缀。
答案 3 :(得分:2)
这对我有用:
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 ;