처음 10자에 특정 문자열이 포함된 경우 sed를 사용하여 파일의 줄을 인쇄합니다.

처음 10자에 특정 문자열이 포함된 경우 sed를 사용하여 파일의 줄을 인쇄합니다.

내 Ubuntu 컴퓨터에 다음 파일이 있습니다.

파일.txt

http://example.com/https:/www.google.com
http://test.example.com
https://www.example.com
https://www.click.example.com
http://example.com
http://test.example.com
https://www.example.com/https:/www.google.com
https://www.click.example.com

새 파일에 출력을 원합니다.

새 파일.txt

https://www.example.com
https://www.click.example.com
https://www.example.com/https:/www.google.com
https://www.click.example.com

아래와 같이 sed를 사용하고 있지만 출력 파일에는 다음을 포함하는 모든 줄이 포함되어 있습니다.https라인 어디든.

sed -n '/https/p' file.txt > new_file.txt

검색을 처음 5자로 제한하고 싶습니다. 처음 5자에서 발견되면 https해당 줄을 인쇄하고, 그렇지 않으면 건너뜁니다.

감사해요.

답변1

sed기본 정규식( BRE)은 텍스트 검색에 기본적으로 사용되므로 다음을 사용할 수 있습니다.구문:

^

패턴 공간의 시작 부분에 있는 빈 문자열과 일치합니다. 즉, 곡절 기호 뒤에 나타나는 내용은 패턴 공간의 시작 부분에 나타나야 합니다.

그래서 당신을 위해:

sed -n '/^https/p' file.txt > new_file.txt

또는 다음을 사용하십시오 grep.

grep '^https' file.txt > new_file.txt

관련 정보