ls
내가 겪고 있는 문제는 다음과 같습니다. 질문 1의 stdout을 foobar 파일로 리디렉션하는 방법을 알고 있습니다 .ls > foobar
명령의 stdout을 파일
ls
로 리디렉션하고 stdout을 명령의 stdin에 연결하는 명령줄을 작성합니다 . 해당 파일 설명자를 사용하지 말고 제공된 지침의 순서대로 명령을 완료하십시오.foobar
wc
셸에서 중복된 줄만 표시하는 명령줄을 작성하세요.
어떤 도움이라도 대단히 감사하겠습니다! !
답변1
이것것 같다케이스 프라이머와 마찬가지로아마도예상되는알다일부 유틸리티는 일반적인 쉘 도우미입니다(예: wc
제가 참조한 유틸리티).
그렇다면 질문 #2는 쉘 유틸리티의 기능을 기억하는지 묻는 것입니다 uniq
. 왜냐하면 대답은 다음과 같습니다."uniq -d로 파이프 출력".
$ echo -e "one\ntwo\ntwo\nthree" # Echo four lines, one is repeated
one
two
two
three
$ echo -e "one\ntwo\ntwo\nthree" | uniq -d # Filter the four
two
고쳐 쓰다: 중복 라인 출력심지어 오작동, 중복 행이 인접하고 식별될 수 있도록 행을 정렬하기만 하면 됩니다 uniq -d
. "... | sort | uniq -d"를 sort
사용하기 전에 uniq
이 작업을 수행 할 수 있습니다 .
"A의 표준 출력을 B의 표준 입력에 연결"은 파이프 문자(이미 알고 있는 > 문자와 유사)를 통해 수행됩니다 A | B
. 이것은 echo
표준 출력이 있을 때 위에서 일어나는 일 입니다.관로표준 입력으로 uniq -d
.
이 모든 것이 당신을 보여줍니다.할 수 있어야이 질문에 스스로 답해 보세요. 실제로 파이프 기호 사용을 놓친 경우 이 질문 이전의 과정, 참고 사항, 자습서 또는 기타 내용을 다시 검토해야 한다는 말을 들어서는 안 됩니다.당신이 또 무엇을 놓칠지 누가 알겠습니까?- 사실, 이것이 이 어리석은 질문의 목적입니다. 기초를 강화해야 할 때를 깨닫도록 하기 위한 것입니다.
답변2
2/ 각 줄을 이전 줄과 동일하게 인쇄하는 작은 쉘 스크립트:
( read a ; while read b ; do if [[ "$a" = "$b" ]] ; then echo "$a" ; fi ; a="$b";done ; )
이 줄을 입력한 다음 다음을 입력할 수 있습니다.< a_file
대부분의(모두?) 관용구는 bash 매뉴얼( man bash
)에서 나옵니다.