sed linux를 사용하여 파일의 값을 업데이트하는 방법

sed linux를 사용하여 파일의 값을 업데이트하는 방법

"root Soft nproc"에 해당하는 값을 180000에서 40000으로 변경해야 합니다. 샘플 파일은 다음과 같습니다. 이 작업을 한 줄로 쉽게 수행할 수 있는 방법이 있습니까?

map   hard   nofile    1000
root    soft    nofile    1000
root    hard   nofile    1010
map   soft    nproc    1200
map   hard   nproc    1200
root    soft    nproc    180000
root    hard   nproc    180000

답변1

당신은 그것을 사용할 수 있습니다

sed 's/^\(root\s*soft\s*nproc\s*\)180000$/\140000/' file > newfile

대체 가치제자리에옵션 사용-i

sed -i 's/^\(root\s*soft\s*nproc\s*\)180000/\140000/' file

구문은 다음과 같습니다.sed 's/replace_old/with_new/' file

  • ^줄의 시작과 일치합니다.
  • \s*공백 문자(공백 및 탭) 수에 관계없이 일치합니다.
  • $줄 끝 일치

내부 부분은 \(...\)그룹으로 캡처되고 캡처 그룹에 대한 역참조인 \140000아래 부분으로 대체됩니다.\1

관련 정보