파일에서 특정 문자 "[" 제거

파일에서 특정 문자 "[" 제거

파일에서 "[" 문자를 제거하고 싶습니다. 나는 노력했다

 sed -i 's/[//g' 'filename'

하지만 다음과 같은 오류가 발생합니다.

sed: -e 표현식 #1, 문자 6: 종료되지 않은 's' 명령

답변1

예, 해당 문자는 그룹(괄호 안의 표현식)을 [시작하기 때문에 특별합니다 .[...]

OpenBSD 에서 sed명령은 더 유용한 오류 메시지를 제공합니다.

$ sed 's/[//g'
sed: 1: "s/[//g": unbalanced brackets ([])

[모든 문자 제거를 사용하려면 sed문자를 이스케이프 처리하세요.

sed -i 's/\[//g' file

또는 대괄호 표현식 안에 넣으세요.

sed -i 's/[[]//g' file

또는 tr,

tr -d '[' <file >file.new

또한 시도 중인 표현식이 실제로 작동하는지 확인하기 전까지는 내부 편집을 사용하지 마십시오. sed그렇지 않으면 백업에서 데이터를 복원해야 할 수도 있습니다.

답변2

질문은 원래 태그가 지정되었으며 awk실제 타당한 이유가 없으므로 다음을 수행하십시오.

awk '{gsub(/\[/, "")}1' file >newfile

그러면 삭제된 모든 파일이 인쇄되어 [에 저장 됩니다 newfile.

다음을 사용하여 gawk내부에서 편집할 수 있습니다 .

gawk -i inplace '{gsub(/\[/, "")}1' file

awk그러나 파일에 대한 다른 작업을 수행하는 데 사용하지 않는 한 나는 이들 중 하나를 사용하지 않을 것입니다.

관련 정보