sed를 사용하여 두 단어 바꾸기

sed를 사용하여 두 단어 바꾸기

두 단어를 한 줄로 바꾸려고 하는데 작동하지 않습니다. 예를 들어, "오늘은 대학에 가는 첫날입니다."는 "오늘은 대학에 가는 첫날입니다."로 바꿔야 합니다.

내가 시도한 것은 다음과 같습니다.

sed 's/\([a-zA-z0-9]\)\([a-zA-z0-9]\)\([a-zA-z0-9]\)/\3\2\1/' filename.txt

내가 뭘 잘못했나요?

답변1

이 시도:

sed -r 's/([a-zA-Z0-9]+) ([a-zA-Z0-9]+) ([a-zA-Z0-9]+)/\3 \2 \1/'

-r문제는 sed 명령에서 옵션이나 이스케이프 기호 없이 확장 정규식을 사용 하려고 한다는 것입니다 .

정규식도 완전히 정확하지 않습니다.

지정한 범위가 잘못되었습니다. A-z범위가 없습니다. yes A-Z.

또한 공백을 잊어버리고 단어가 다중 문자임을 지정하지 않았습니다.

관련 정보