파일 패턴을 기반으로 모든 파일에서 단어 찾기 및 바꾸기

파일 패턴을 기반으로 모든 파일에서 단어 찾기 및 바꾸기

"User": "x-73098"다음 파일 이름을 가진 여러 파일에서 호출된 변수가 있습니다. astro_root_sys-dev.txt.

"User": "x-73098" 변수가 있는 모든 파일을 찾고 해당 변수 값을 동적 "User": "x-73098"으로 "User": "sys_user".

사용자 값(x-73098)은 모든 파일에서 동일하지 않으며 x- 뒤의 숫자는 많은 파일에서 다릅니다.

답변1

sed선형 검색은 "unknown"이 포함된 문서를 검색하고 "sys_user"로 바꿉니다.

sed -i 's/"unknown"/"sys_user"/g' *.txt

다음으로 끝나는 모든 문자열을 변경하려면 -73098:

x가 숫자인 경우:

sed 's/[0-9]-73098/"sys_user"/g'  *.txt

x가 소문자인 경우:

sed 's/[a-z]-73098/"sys_user"/g'  *.txt

x가 대문자인 경우:

sed 's/[A-Z]-73098/"sys_user"/g'  *.txt

x가 대문자, 소문자 또는 숫자인 경우:

sed -i 's/[a-zA-Z0-9]-73098/User: "sys_user"/g' *.txt

답변2

노력하다

for FN in astro*.txt; do sed -r 's/(User: ")x-[[:digit:]]*"/\1sys_user"/' "$FN" > /tmp/TMP$$; mv /tmp/TMP$$ "$FN"; done

관련 정보