![처음 패턴부터 라인 내의 패턴을 교체합니다.](https://linux55.com/image/92758/%EC%B2%98%EC%9D%8C%20%ED%8C%A8%ED%84%B4%EB%B6%80%ED%84%B0%20%EB%9D%BC%EC%9D%B8%20%EB%82%B4%EC%9D%98%20%ED%8C%A8%ED%84%B4%EC%9D%84%20%EA%B5%90%EC%B2%B4%ED%95%A9%EB%8B%88%EB%8B%A4..png)
텍스트 줄 내의 패턴을 같은 줄의 시작 부분에 있는 패턴으로 바꿔보세요.
다음과 같은 텍스트가 있습니다.
number4456 reports a high level of error
number3458 taking a proper error warning
number9273 is not an error prone software
원하는 출력:
reports a high level of error_number4456
taking a proper error_number3458 warning
is not an error_number9273 prone software
답변1
그리고 sed
:
LC_ALL=C sed -e 's/^\([^ ]*\) \(.* error\)/\2_\1/' <file
error
한 행에 하나만 나타난다고 가정합니다.
답변2
awk '{a = "";for(i=2;i<=NF;i++){if($i ~ /error/)a = a$i"_"$1" ";else a = a$i" "}print a}' yourfile