对于颠簸的主题名称感到抱歉(如果在查看问题后发现更合适的标题,请随时编辑)。 代码示例等于1000分的话,那么在这里我们去:有条件的命令在bash中的管道命令序列中执行
if [ "$REGEX" != "" ]; then
find $TEST_DIR -type f -regextype posix-extended -regex '^.*(status|stderr|stdout)-captured$' |
grep -E $REGEX |
awk '{print(""$1" "$1)}' | sed 's/-captured$/-expected/' |
while read -r line; do mv -f $line; done
else
find $TEST_DIR -type f -regextype posix-extended -regex '^.*(status|stderr|stdout)-captured$' |
awk '{print(""$1" "$1)}' | sed 's/-captured$/-expected/' |
while read -r line; do mv -f $line; done
fi
什么代码所做的是并不那么重要,我只是想找到更优雅的方式要么使用“的grep -E $正则表达式”或不。我认为条件化别名可以像我习惯使用shell一样完成这项工作,但它们在脚本中不起作用。
我可以放入一个条件,但我担心来自多个评估的性能影响。
任何方式来使代码“更优雅”?
你能描述一下你想要的输入/输出好一点吗? – 2012-03-23 20:30:25
@CarlNorum不要认为这是必要的,但我应该:首先找到匹配名称'{status,stderr,stdout)-captured'的文件的打印路径,然后这些进一步被'grep -E $ REGEX'过滤。 awk,sed和read,组装这个例子: './dir/status-captured'到执行的'mv ./dir/status-captured。/ dir/status-expected'中。 – AoeAoe 2012-03-23 20:36:11