다음 내용이 포함 된 간단한 파일이 있습니다.
# programming
python
python-pip
perl
# web
firefox
firefox-i18n-es-es
이 예제의 파일 이름은 file
. 나는 보통 pacman
. 다음과 같은 방식으로 명령에 전달합니다.
pacman -Sy --noconfirm $(<file)
나는 일반적으로이 파일에서 주석을 사용하지 않지만 주석이 필요하다는 것을 깨닫기 시작했습니다. 주석 ( #
)은 문제없이 작동하지 않지만 설치할 패키지로 추출합니다.
$ pacman -S $(<file)
[sudo] password for user:
error: no se ha encontrado el paquete: #
error: no se ha encontrado el paquete: programming
advertencia: python-3.9.1-2 está actualizado -- reinstalándolo
advertencia: python-pip-20.3.1-1 está actualizado -- reinstalándolo
advertencia: perl-5.32.1-1 está actualizado -- reinstalándolo
error: no se ha encontrado el paquete: #
error: no se ha encontrado el paquete: web
advertencia: firefox-85.0.2-1 está actualizado -- reinstalándolo
advertencia: firefox-i18n-es-es-85.0.2-1 está actualizado -- reinstalándolo
나는 stdout
주석 라인없이 조작을 시도했습니다 .
$ cat file | grep -v '^#'
python
python-pip
perl
firefox
firefox-i18n-es-es
그러나 모든 것을 결합하는 방법을 알 수 없습니다.
$ pacman -S $(< $(cat file | grep -v '^#'))
-bash: $(cat file | grep -v '^#'): redireccionamiento ambiguo (ambiguous redirection)
error: no se especificaron objetivos (use -h para ayuda)
어떻게 결합 할 수 있습니까?
pacman -S $(grep -v '^#' file)
pacman -S $(<file)
주석없이 파일에 대해 원하는 작업을 수행 한다고 가정합니다 ( 예 : printf
대신 사용) pacman
.
$ printf '<%s>\n' $(<file)
<#>
<programming>
<python>
<python-pip>
<perl>
<#>
<web>
<firefox>
<firefox-i18n-es-es>
$ printf '<%s>\n' $(grep -v '^#' file)
<python>
<python-pip>
<perl>
<firefox>
<firefox-i18n-es-es>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다