공백으로 구분된 여러 단어로 구성된 파일 이름을 "-" 기호의 첫 번째 항목을 검색한 다음 해당 문자열의 순서를 전환하여 두 개의 개별 문자열로 분할하려고 합니다. 예를 들어, 파일 이름이 원래
워드 1 워드 2 ... 워드 9 - 워드 A 워드 B ... 워드 Z
그러면 원하는 출력은 다음과 같습니다.
워드 A 워드 B ... 워드 Z - 워드 1 워드 2 ... 워드 9
"-"는 양쪽에 최대 1개의 단어를 포함할 수 있습니다. 내 sed 코드는
sed -r 's/([a-zA-Z0-9]+) \- ([a-zA-Z0-9])*/\2 \- \1/'
내 질문은 sed에서 "-" 앞뒤에 단어 수를 지정하는 방법입니다. sed는 최대 9개 모드만 지원하는 것으로 알고 있습니다.
나는 읽었다과거로부터의 질문그러나 문제는 알려진 고정된 수의 단어를 전환하는 것에 관한 것입니다.
답변1
이 시도:
echo 'word1 word 2 ... word9 - wordA wordB ... wordZ' | sed 's/\(.*\) - \(.*\)/\2 - \1/'
산출:
워드 A 워드 B ... 워드 Z - 워드 1 워드 2 ... 워드 9