다음 내용이 포함된 파일이 있습니다.
/hello="somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff"
/hello="morestuffmorestuffmorestuffmorestuffmorestuffmorestuffmorestuff
morestuffmorestuffmorestuffmorestuffmorestuff"
어떻게 정의를 얻을 수 있습니까?
/hello="somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff"
sed
파이프를 통해 "/"로 구분된 /hello
콘텐츠를 받고 있지만 cut
첫 번째 하위 문자열을 얻는 방법을 모르겠습니다.
내가 사용한 명령
sed -n '/hello/, /\"/ p' file.txt | cut -d "/" -f 2
어떤 이유로 각 하위 문자열을 첫 번째 줄과 나머지 줄로 나눕니다.
답변1
다음 중 하나를 사용하세요.
sed -n '/hello/,/"$/p;/"$/q' infile
또는 이 방정식은 다음과 같습니다.
sed '/hello/,/"$/!d;/"$/q' infile
또는 awk
다음과 같이 사용할 수도 있습니다(항상 첫 번째 줄이 있다고 가정 hello
).
awk '/hello/ || 1;/"$/{exit}' infile
그렇지 않으면 플래그를 사용하여 관리하세요.
awk '/hello/{prnt=1};prnt;/"$/{exit}' infile
답변2
나는 다음 sed 명령을 사용하여 이 작업을 수행했습니다.
sed '0,/hello.*/!s///' inputfile| sed '/^\/$/,$d'
산출
/hello="somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff"
답변3
또 다른 방법
sed -n '/\/hello/,/"$/p;/"$/q' iputfile
산출
/hello="somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff"