다음은 예입니다. 9번째 열 값이 8보다 작으면 이를 바꿔야 하며, 그렇지 않으면 sed 또는 awk 함수를 사용하여 종료하거나 무시합니다.
) in datadbs extent size 16 next size 4 lock mode row;
아래 awk 함수를 사용하면 9열에 필요한 값만 출력되는데, 그래도 문장 구조는 유지하고 싶습니다.
echo ") in datadbs extent size 16 next size 4 lock mode row;" |
awk '{if ($9 < 8 ) print 8;}'
산출:
8
내가 원하는 것은 다음과 같습니다.
) in datadbs extent size 16 next size 8 lock mode row;
답변1
나도 모르게 awk
매개변수를 변경하고 모든 것을 인쇄하는 것이 좋습니다.
echo ") in datadbs extent size 16 next size 4 lock mode row;" |
awk '{if ($9 < 8 ) $9 = 8; print;}'
답변2
sed -e 's/\S\+/&\n/9; s/ [0-7]\n/ 8/'
답변3
sed선택하다:
s=") in datadbs extent size 16 next size 4 lock mode row;"
echo $s | sed 's/size [0-7] lock/size 8 lock/'