하이픈 사용이 편리한 표준 입력 출력 지정한 명령행

3310 단어 Bash
멋있고 멋있는 용법을 발견하면 언제든지 기억하고 싶어요.

하이픈으로 표준 입력/내보내기


명령으로 파일 이름을 전달할 때 하이픈을 지정하면 기본적으로 표준 입력(표준 출력)으로 해석됩니다.
예를 들어cat 명령에서 사용하면 키보드 입력을 직접 표시할 수 있습니다.
Example
~$ cat -
hoge (←入力)
hoge
nullpo (←入力)
nullpo
파일을 매개 변수로 하는 명령에 특정한 출력 결과를 전달하고 싶을 때 임시 파일을 잠시 만들거나... 파일을 출력하는 명령을 표준 출력으로 직접 출력하는 등 다양한 이용을 할 수 있다.

사례집


wget에서 가져온 URL 내용을 표준 출력으로 내보내기


get은 기본적으로 URL 이름의 마지막 쪽을 보고 파일을 만들지만, O(-output-document=) 옵션으로 파일 이름을 지정할 수 있기 때문에 파일 이름에 문자를 연결하면 표준 출력으로 출력됩니다.
wget(1)
~$ wget http://www.example.com/ --output-document=-
예를 들어, 여기에서 링크를 추출하려는 경우
wget(2)
~$ wget http://www.example.com/ --output-document=- 2>>/dev/null | grep href
    <p><a href="http://www.iana.org/domains/example">More information...</a></p>
이렇게 하면 (간단한 것이기 때문에 정확하게 추출할 수 있을지 없을지는 별개) 비교적 시원하게 추출할 수 있다.
curl 명령도 같은 일을 할 수 있지만 그쪽에서는 여러 가지 일을 할 수 있지만 옵션이 다소 복잡하기 때문에 머리를 놀지 않을 때 빠르게 완성할 수 있는 wget을 자주 이용합니다.가장 중요한 것은 왼손만으로 지령을 할 수 있다는 것이다

diff에서 표준 입력과 특정 파일 비교


sed나 어떤 교환 결과와 특정 파일의diff를 사용할 수도 있습니다.
diff(1)
~$ sed "s/(なんか)/(おきかえ)/g" nullpo1.txt | diff - nullpo2.txt
비슷한 서류가 두 개 있을 때 "이게 여기만 다르고 같이 있는 건가요?"생각할 때 바꾸기 + 표준에서 입력한 디프 라싸디 멋있어!

vim에서 표준 입력 보이기, 편집


이것은 표준 입력을 자신에게 등장할 기회가 많은vim(or 각종 편집기)에 건네주는 방법이다.하이라이트로 출력 결과를 보고 싶지만 임시 파일을 하나하나 만들어서 편집기로 다시 열어도 귀찮을 때가 이런 느낌이다.
vim(1)
~$ diff nullpo1.txt nullpo2.txt | vim -
git diff 같은 것도 less와more 같은 삐삐를 작동합니다. 이것도 밝게 하려면 파이프로vim에 맡기세요. 정말 신기합니다.
vim(2)
~/nullpoRepos$ git diff | vim -
여기서부터 이름을 지어 저장할 수도 있다.

scp를 통해 전송된 압축 파일 직접 전개


만약 당신이 다른 서버의 압축 파일을 잠시 자신의 서버에 가져다 놓고 싶다면, 보통
~$ scp NullpoHost:~/archive.tgz .
~$ tar zxvpf archive.tgz
~$ rm archive.tgz # 元ファイルがもう不要なら
이런 느낌도 들지만 하이픈을 사용하면 아카이브 파일의 잔해조차 남지 않고 단번에 할 수 있다.
~$ ssh NullpoHost "cat ~/archive.tgz" | tar zxvpf -
이것은 저장된 바이너리 파일을cat 뒤에 있는 내용을 tar에 직접 건네주는 절차입니다.
일반적으로 아카이브 + 확장된 파일이 차지하는 용량은 아카이브 파일 크기가 커지면 하중 및 전송 속도가 줄어듭니다.
이 가능하다, ~할 수 있다,...
(ssh 명령으로 파일 내용을 흐름에 전달하는 것보다 자체 파일 전송 명령을 맡은 scp 선생님에게 최적화하는 것이 낫다)

끝내다


이 하이픈을 알게 된 후, 홈 디렉터리의 a와 hoge처럼 언제 어떤 파일을 사용했는지 급격히 줄어들었다!시원하다!(아니라고는 안 했어)

좋은 웹페이지 즐겨찾기