tr a A </ etc / hosts | 정렬 -r | pr -d> / etc / hosts


9

이 줄에서 :

tr a A < /etc/hosts | sort -r |pr -d > /etc/hosts 

예상되는 결과는 무엇입니까? 소문자 'a'가 대문자 'A'로 바뀌는 것을 알고 있지만 다음은 무엇입니까? 리디렉션이 동일한 파일 이름이므로 원본 파일을 덮어 쓰겠습니까?


bash: /etc/hosts: Permission denied실행하지 않으면 오류가 발생합니다 (쉘이 bash라고 가정) root. /etc/hosts일반적으로 루트 만 쓸 수 있습니다. 이것을 root실제로 실행 하지 않으면 /etc/hostsMichael Homer가 설명 한 것처럼 비어 있습니다.
arielf

답변:


17

예상 결과는 빈 /etc/hosts파일입니다.

프로그램이 실행 을 시작하고 파일에서 읽기 시작하기 전에 리디렉션이 > /etc/hosts발생 하여 파일을 자릅니다 .tr

에 출력을 쓰려면 /etc/hosts파일 사본으로 작업하거나 나중에 출력 파일을 제자리로 옮기거나 spongemoreutils 명령을 사용하면 표준 입력을 흡수하고 파일에 쓸 수 있습니다.

tr a A < /etc/hosts | sort -r | pr -d | sponge /etc/hosts

이 경우, 각각의 "가"에 /etc/hosts될 것이다 교체 "A"로, 모든 라인이 될 것입니다 귀하의 지역에 따라 역으로 정렬 , 빈 줄을 각 줄 사이에 삽입됩니다 , 그 결과가 투입됩니다 /etc/hosts.


유용 할 수도 있습니다.


1
작성된 방식과 예상 결과를 얻기 위해 작성할 수있는 방법으로 무엇을 기대해야하는지 명확히 해주셔서 감사합니다.
tdharrison 2019

moreutils 는 정말 훌륭한 도구입니다
Robert Riedl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.