파일에서 "[" 문자를 제거하고 싶습니다. 나는 노력했다
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
그러나 파일에 대한 다른 작업을 수행하는 데 사용하지 않는 한 나는 이들 중 하나를 사용하지 않을 것입니다.