對於顛簸的主題名稱感到抱歉(如果在查看問題後發現更合適的標題,請隨時編輯)。 代碼示例等於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