단어를 바꾸는 sed 명령이 작동하지 않습니다

단어를 바꾸는 sed 명령이 작동하지 않습니다

나는 sed를 사용하여 다음과 같이 각 줄의 단어를 바꾸려고 합니다.

sed 's/\([^ ]*\), \([^ ]*\)/\2, \1/' sed.txt

이것은 sed.txt입니다:

FIRST LAST
FIRST LAST
FIRST LAST
FIRST LAST

하지만 작동하지 않습니다. 이유를 모르겠습니다. 내가 원하는 결과는 다음과 같습니다.

LAST FIRST
LAST FIRST
LAST FIRST
LAST FIRST

이 예제가 사소한 것임을 알고 있지만 위치를 변경하지 않고 현재 위치에서 단어를 바꾸는 데만 사용하고 있으므로 sed에 대해 더 알고 싶습니다.

답변1

sed 's/\([^ ]*\), \([^ ]*\)/\2, \1/' sed.txt

문제는 원본 텍스트에 없기 때문에 첫 번째 쉼표입니다. 변화:

sed 's/\([^ ]*\) \([^ ]*\)/\2, \1/' sed.txt

그리고 작동할 것이다

관련 정보