불편한 주제 이름을 사용하여 죄송합니다. 문제를보고 나서 더 맞는 제목을 찾으면 자유롭게 편집하십시오. 코드 샘플은 그래서 여기에 우리가 간다, 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
않는 모든 중요하지 않다 무엇 코드, 그냥 "그렙 -E $ REGEX"를 사용하는 하나 더 우아한 방법을 찾으려면 아닙니다. 나는 쉘 사용법에서 익숙해 진 것과 같이 conditdonal aliases가 작업을 수행 할 수 있다고 생각했지만 스크립트 안에서는 작동하지 않는다.
여러 가지 평가에서 성능에 영향을 줄 수 있습니다.
코드를 "더 우아하게"만들 수있는 방법은 무엇입니까?
조금 더 나은 입출력을 설명 할 수 있습니까? –
@CarlNorum 필요 없다고 생각하지만, 먼저'{status, stderr, stdout} -captured'와 일치하는 파일에 대한 인쇄 경로를 찾고, grep -E $ REGEX로 필터링합니다. awk, sed와 read는 실행 된'mv ./dir/status-captured./dir/status-expected'에'./dir/status-captured'를 넣고이 예제를 조립합니다 : . – AoeAoe