나는 Atom(텍스트 편집기)에서 원하는 문자열이 있는 ebuild를 검색하고 여는 데 사용할 수 있는 Bash 스크립트 기능을 만들려고 노력해 왔습니다. 이것은 나의 현재 Bash 스크립트 함수입니다(다음 ~/.bashrc
위치에 저장됨).
function edsch {
L=$(grep --include "*.ebuild" -R "$1" /usr/portage/$2)
for i in ${L[@]}
do
atom $i
done
}
edsch .src.rpm x11-themes
카테고리에서 ebuild를 검색하기 위해 Atom을 사용하고 Atom을 사용하여 결과를 열고 싶습니다 . 문제는 그 내용이 문자열(예를 들어)이 나타나는 ebuild의 위치와 내 파일 시스템의 ebuild 위치(루프에서 전달하려는)를 참조한다는 것입니다. 즉, 이 예에는 다음 내용이 있습니다.x11-themes
.src.rpm
${L}
.src.rpm
atom
for
${L}
/usr/portage/x11-themes/redhat-artwork/redhat-artwork-5.0.8-r4.ebuild:SRC_URI="mirror://gentoo/${P}-${MY_R}.fc7.src.rpm"
/usr/portage/x11-themes/lovelock-backgrounds/lovelock-backgrounds-14.91.1.1.ebuild:SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm"
/usr/portage/x11-themes/laughlin-backgrounds/laughlin-backgrounds-14.1.0.3.ebuild:SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm"
/usr/portage/x11-themes/solar-backgrounds/solar-backgrounds-0.92.0.5.ebuild:SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm"
/usr/portage/x11-themes/goddard-backgrounds/goddard-backgrounds-13.0.0.3.ebuild:SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm"
/usr/portage/x11-themes/leonidas-backgrounds/leonidas-backgrounds-11.0.0.2.ebuild:SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm"
/usr/portage/x11-themes/verne-backgrounds/verne-backgrounds-15.91.0.1.ebuild:SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm"
/usr/portage/x11-themes/constantine-backgrounds/constantine-backgrounds-12.1.1.4.ebuild:SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm"
각 줄의 첫 번째 부분은 내 시스템의 ebuild 위치(예: /usr/portage/x11-themes/constantine-backgrounds/constantine-backgrounds-12.1.1.4.ebuild
마지막 줄)를 나타내고, 두 번째 부분(예: SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm
마지막 줄) 은 .src.rpm
문자열이 나타나는 줄을 나타냅니다. grep
파일 시스템의 ebuild 위치만 표시되도록 출력을 변경할 수 있는 방법이 있나요 ?
답변1
grep
다음 옵션을 사용하여 검색 매개변수와 일치하는 파일의 파일 이름만 출력 할 수 있습니다 -l
.
function edsch {
L=$(grep -l --include "*.ebuild" -R "$1" /usr/portage/$2)
for i in ${L[@]}
do
atom $i
done
}
그러면 찾고 있는 출력이 생성되고 Atom을 사용하여 해당 파일이 열립니다.