필드 구분 기호 ":"부터 줄 끝까지 인쇄하는 방법은 무엇입니까?

필드 구분 기호 ":"부터 줄 끝까지 인쇄하는 방법은 무엇입니까?

필드 구분 기호 ":"부터 줄 끝까지 인쇄하는 방법

예:

echo " llap_java_opts  :  -XX:+AlwaysPreTouch {% if java_version > 7 %}-XX:+UseG1GC -XX:TLABSize=8m -XX:+ResizeTLAB -XX:+UseNUMA -XX:+AggressiveOpts"

llap_java_opts  :  -XX:+AlwaysPreTouch {% if java_version > 7 %}-XX:+UseG1GC -XX:TLABSize=8m -XX:+ResizeTLAB -XX:+UseNUMA -XX:+AggressiveOpts

예상 출력:

-XX:+AlwaysPreTouch {% if java_version > 7 %}-XX:+UseG1GC -XX:TLABSize=8m -XX:+ResizeTLAB -XX:+UseNUMA -XX:+AggressiveOpts

답변1

나는 이것을 사용할 것입니다 cut -d: -f2-:

echo " llap_java_opts  :  -XX:+AlwaysPreTouch {% if java_version > 7 %}-XX:+UseG1GC -XX:TLABSize=8m -XX:+ResizeTLAB -XX:+UseNUMA -XX:+AggressiveOpts" | cut -d: -f2-

답변2

그것을 통과하세요

sed 's/^[^:]*: *//'

이렇게 바꾸면 sed줄의 시작 부분부터 첫 번째 공백까지의 :모든 내용 과 첫 번째 공백을 포함하여 그 이후의 모든 공백이 제거됩니다.

문자열이 쉘 변수에 존재하는 $a경우

printf -- '-%s\n' "${a#*-}"

이는 매개변수 확장을 사용하여 ${parameter#word}첫 번째 항목까지의 모든 항목을 제거합니다 -. 대시가 다시 삽입됩니다 printf. 대부분의 최신 쉘에서 실행될 때 외부 유틸리티를 사용하지 않습니다.

답변3

사용 grep:

grep -Po ':\K.*' infile

이 어설션은 인쇄 전에 표시되는 첫 번째 콜론 이전의 모든 내용을 \K무시합니다 .:

관련 정보