아래에는 열 9 값이 8보다 작은 경우 열 9 값을 바꿔야 하는 예가 있습니다. 그렇지 않으면 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/'