awk 또는 sed를 사용하여 문장에서 8보다 작은 단어나 숫자를 바꿉니다.

awk 또는 sed를 사용하여 문장에서 8보다 작은 단어나 숫자를 바꿉니다.

아래에는 열 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/'

관련 정보