Joh*_*den 25 bash shell mercurial awk concatenation
$ hg status
Run Code Online (Sandbox Code Playgroud)
和
$ hg status --ignored
Run Code Online (Sandbox Code Playgroud)
给出非常相似的输出.我想连接它们以便我可以将它们提供给awk,好像有一个hg状态--all(或svn的svn状态--no-ignore)
我想的是:
$ echo "$(hg status)" "$(hg status --ignored)" | awk ' ( $1 == "?" ) || ( $1 == "I") { print $2 }' | xargs rm -r
Run Code Online (Sandbox Code Playgroud)
制作一个"确实非常干净"的命令,但它似乎偶尔会留下一个文件,可能是因为新行缺失或其他东西.
Vin*_*eib 29
使用花括号来分组命令:
$ { echo first line; echo second line; } | grep "line"
first line
second line
Run Code Online (Sandbox Code Playgroud)
(作为camh评论的回答)
Ala*_*avi 28
您可以使用子shell:
( hg status; hg status --ignored ) | awk '( $1 == "?" ) || ( $1 == "I") { print $2 }' | xargs rm -r
Run Code Online (Sandbox Code Playgroud)
您可以使用其余的hg状态标志来显示您真正想要的内容:
hg status -uriamn
Run Code Online (Sandbox Code Playgroud)
这显示了未知文件(u),删除文件(r),忽略(i),添加(a),修改(m),并且没有显示状态前缀.