나는 모든 새 줄에서 도트 문자로 시작하는 경우 도트 문자를 제거하고 싶습니다.
example:
test.example.com
123.example.com
999.example.com
.asd.example.com
.1.1.example.com
would become:
test.example.com
123.example.com
999.example.com
asd.example.com
1.1.example.com
Bash에서 이 작업을 수행하는 쉬운 방법이 있습니까?
답변1
"in bash"의 의미에 따라 다릅니다. sed
정규식 기반 텍스트 편집기나 유사한 정규식 편집기에서 수행하는 것은 간단합니다.
$ sed 's/^[.]//' example
test.example.com
123.example.com
999.example.com
asd.example.com
1.1.example.com
마침표 주위의 괄호는 정규 표현식 해석을 방지합니다(단일 선행 문자 제거). 백슬래시 이스케이프를 사용하여 s/^\.//
리터럴로 만들 수도 있습니다..
답변2
데이터가 있는 파일을입력.txt
다음 명령을 사용하면 정규식을 사용하여 텍스트를 바꿀 수 있습니다. 입장($명 sed)더 많은 정보를 알고 싶으시면
$ sed 's/^\.//' input.txt
그러면 터미널 출력에 결과가 인쇄됩니다.
원하는 경우 다음을 사용하여 출력을 파일로 리디렉션할 수 있습니다.
$ sed 's/^\.//' input.txt > output.txt