답변:
솔라리스에 익숙하지는 않지만 GNU / 리눅스에서 솔라리스로 전환하면 대부분의 명령이 약간 다르게 동작한다는 것을 알 수 있습니다. 유닉스 도구의 GNU 버전에는 "독점"유닉스에없는 추가 기능이 있습니다.
여기에서 GNU grep을 다운로드 할 수 있습니다 한 다음 컴파일하고 설치할 수 있습니다.
루트 액세스 권한이 있으면 configure --prefix = / usr / local을 실행하여 유틸리티가 / usr / local에 설치되도록 할 수 있습니다.
루트 액세스 권한이 없으면 configure --prefix = $ {HOME}을 실행하여 유틸리티를 홈 디렉토리에 설치하십시오.
--prefix=${HOME}}/.local
아마 더 좋습니다 ...와 홈 디렉토리를 복잡하게 할 필요가 없습니다 share
및 lib
폴더
share
정말 디렉토리가되어야합니다! " rm -rf
도!
을 사용하려면 find
이것이 가장 빠른 방법입니다.
find . -type f -exec grep pattern {} +
그러나 Gnu grep은 이미 컴퓨터에 설치되어있을 가능성이 큽니다.
의 Solaris 11 기본 설치의 일부입니다 /usr/gnu/bin/grep
. 에서 찾을 수있는 Solaris 10의 경우와 동일합니다 /usr/sfw/bin/ggrep
. 이전 릴리스에서, 그것은 sunfreeware 또는 다른 저장소, 검사에서 설치되었을 수 있습니다 /usr/local/bin/grep
및 /opt/csw/bin/grep
일반적인 위치에 대한.
-name
옵션을 사용할 수도 있습니다 find
.
-name
은 파일 내부를 검색하지 않지만 OP가 요구하지 않는 파일 이름 만 검색합니다.
ggrep 이 설치되어 있으면 대신 사용하십시오 .
예 : 현재 디렉토리에서 모든 하위 디렉토리 ( -R
) 까지 "mysearchstring"을 검색하고 일치하는 파일 이름과 경로 ( -H
)를 표시하고 이진 파일 ( -I
)은 무시하십시오 . *
명령의 끝을 잊지 마십시오 .
/usr/sfw/bin/ggrep -H -R -I "mysearchstring" *
ggrep is in /usr/sfw/bin
EXPORT 명령을 사용하여 프로파일에 추가하여 명령 행에서 직접 호출 할 수 있습니다.
PATH=$PATH:/usr/sfw/bin
export PATH
Solaris 버전 : SunOS 5.10 Generic_147440-13 sun4u sparc SUNW, SPARC-Enterprise
ggrep
실제로 GNU grep입니다. 감사!
http://betterthangrep.com/ack
에서 독립형 perl 스크립트를 다운로드 하여$HOME/bin
사용하는 방법을 배우십시오. 나는 그것이 일상적인 개발 작업에서 많은 용도로 grep보다 광고하는 것보다 낫다는 것을 알았습니다.
Solaris grep에는 없습니다 -r
옵션 .
다음 명령을 사용할 수 있습니다.
find . -type f | xargs grep 'sometext'
find /opt/ -name "*.sh" -type f | xargs grep "start"
예, GNU grep이 필요합니다. 당신의 조합으로 동일한 작업을 수행 할 수 있기 때문에 개인적으로는 "-r"플래그를 놓치지 마세요 find
및grep
그러나 이것은 솔라리스 상자의 GNU 도구를 사용할 수있는 것은 내가 가장 좋은 방법을 고려할 것입니다 것을 상기시켜줍니다. 그래서 우리는 간다 :
인터넷의 여러 곳에서 소스 코드를 다운로드 한 다음 스스로 구축하는 것은 아닙니다. 필요하지 않습니다. Solaris에서 일반적인 GNU 도구를 사용할 수있게하려면 다음과 같이하십시오.
당신은에있는 경우 솔라리스 10 의 Solaris 10 도우미 디스크를 얻어야한다. 이것은 Sun이 배포했지만 지금 여기에 있습니다 . 개인적으로 나는 항상이 디스크의 내용이나 최소한 가장 중요한 GNU 부분을 설치하는 습관으로 만들 것입니다. 조직의 새 서버에 대해 JumpStart (또는 사용하는 모든 것)의 일부로 만드십시오!
당신은에있는 경우 솔라리스 11 인생은 훨씬 간단합니다. GNU 도구는 일반적으로 기본적으로 설치되지만 모든 도구가 로컬 영역으로 전파되는 것은 아닙니다. Solaris 11의 패키징 시스템 인 IFS는 인생을 훨씬 편하게 해주므로 실제로 Solaris 11로 전환해야합니다 (많은 다른 이유도 있습니다). 어떤 영역에서든 항상 사용할 수 있어야하는 패키지 목록은 다음과 같습니다.
pkg : // solaris / archiver / gnu-tar pkg : // solaris / developer / gnu-binutils pkg : // solaris / diagnostic / top pkg : // solaris / file / gnu-coreutils pkg : // solaris / file / gnu-findutils pkg : // solaris / text / gawk pkg : // solaris / text / gnu-diffutils pkg : // solaris / text / gnu-grep pkg : // solaris / text / gnu-sed
개발 / 빌드 목적으로 호스트를 사용하는 경우 다음을 추가 할 수 있습니다.
pkg : // solaris / developer / build / gnu-make pkg : // solaris / developer / build / make pkg : // solaris / developer / gcc-45 pkg : // solaris / system / header pkg : // solaris / developer / build / autoconf pkg : // solaris / developer / build / automake-110
개인적으로 위의 (잠재적으로 개발 도구는 적음) 새 서버 / 영역에 대한 회사 기본 설치의 일부로 만들 것입니다. Solaris sysadmins는 종종 Linux 세계와 다른 점을 고집하지만 실제로는 그럴 필요가 없습니다. 그렇게하고 기본 설치의 일부로 만드십시오. 후회하지 않을 것입니다.