Sed 명령 동작 및 매개변수 처리의 차이점

Sed 명령 동작 및 매개변수 처리의 차이점

최근에 저는 sed구성 파일에 대한 작업을 수행하고 있었습니다. 명령이 매개변수와 sed다르게 동작하는 것을 발견했습니다.-ir-ri

[root@node system]# sed -ri 's|(^[[:space:]]+[Kk]ernel.*$)|\1 transparent_hugepage=never|' temp_file
[root@node system]# echo $?
0

[root@node system]# sed -ir 's|(^[[:space:]]+[Kk]ernel.*$)|\1 transparent_hugepage=never|' temp_file
sed: -e expression #1, char 60: invalid reference \1 on `s' command's RHS
[root@node system]# echo $?
1

답변1

옵션은 입력 파일을 내부에서 편집할 때 파일을 백업하는 데 사용되는 파일 이름 접미사인 옵션 인수를 -i사용합니다 . sedGNU의 경우 sed이 옵션 인수는 선택 사항이지만 제공되면 분명히 사용됩니다.

Use는 파일 이름이 입력 파일의 원래 이름이어야 하며 접미사로 문자가 추가되어야 함을 백업 파일에 -ir알려줍니다 . 지금은 사용되지 않으므로 패턴에 그룹이 없기 때문에 표현식의 대체 부분에 있는 역참조가 더 이상 유효한 것으로 인식되지 않습니다 (기본 정규 표현식을 사용하여 패턴의 일부를 캡처하는 방법).sedr-r\( ... \)

한마디로 sed -ri와 같지 않습니다 sed -ir.

관련 정보