!["grep -Rl jdk1.7.0_80 . | xargs sed -is,jdk17.0_80,weblogic"을 해석하는 방법은 무엇입니까?](https://linux55.com/image/88137/%22grep%20-Rl%20jdk1.7.0_80%20.%20%7C%20xargs%20sed%20-is%2Cjdk17.0_80%2Cweblogic%22%EC%9D%84%20%ED%95%B4%EC%84%9D%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
방금 rhel 서버에 Oracle weblogic을 설치했습니다. 설치는 성공했는데, 설치 가이드에서는 설명 없이 아래 명령어만 실행하라고 하더군요. 나는 내가 겪고 있는 일을 알고 싶다.
grep -Rl jdk1.7.0_80 . | xargs sed -i s,jdk17.0_80,weblogic,
- jdk1.7.0_70은 /usr/java/jdk1.7.0_80에 설치됩니다.
- weblogic은 /some/path/name에 설치되어 있으며 설치 가이드에서는 /some/path/name 내에서 명령을 실행하라는 메시지를 표시했습니다.
답변1
분해할 것돈 크리스티지적했다:
grep -Rl jdk1.7.0_80 .
.
현재 위치( )를 반복적으로 검색하고(-R
)jdk1.7.0_80
일치하는 각 파일의 이름을 반환합니다(-l
).|
출력을 다음 명령으로 "파이프"합니다xargs
.xargs
표준 입력(예: 파이프)에서 명령을 빌드하고 실행합니다. 이 경우 에서sed
반환한 파일 목록에서 일련의 명령을 작성 합니다grep
.sed -i s,jdk17.0_80,weblogic, <filename>
각 파일은 다음에 나오는 정규식을 기반으로 내부에서 편집( )되고 대체( )됩니다-i
.s
sed s 명령 문서에서는 일반적인 정규식 구분 기호를 사용하지만/
모든 문자를 사용할 수 있다고 나와 있습니다.,