한 줄에서 고유한 단어를 찾는 방법

한 줄에서 고유한 단어를 찾는 방법

문자열이 있고 50003 50003 50003 50001이를 다른 파일로 처리한 후 결과 문자열이 변수에 저장됩니다. 이제 이 변수에서 고유한 단어를 얻고 싶습니다. 50003 50001이 작업을 수행하는 방법 처럼요 ?

답변1

tr, sort, uniq를 통해 파이프할 수 있습니다. 예를 들어 명령 프롬프트에서 다음을 테스트할 수 있습니다.

 $ var1='50003 50003 50003 50001 50003'

다음,

 $ echo $var1 | tr ' ' '\n' | sort | uniq
50001
50003

보시다시피, 나중에 정렬된 입력이 필요한 작업을 수행하려는 경우를 대비하여 정렬된 고유 콘텐츠를 출력합니다.

고쳐 쓰다

주석의 다른 질문에 대해 결과를 변수에 저장하려면 스크립트에서 다음을 수행할 수 있습니다.

var2="$( echo $var1 | tr ' ' '\n' | sort | uniq )"
  • $(...bash 명령 대체이며, )내용을 명령 출력으로 바꿉니다.$(...)

$var2따라서 나중에 스크립트에서 터미널로 출력하려면 다음을 수행하십시오.

echo "$var2"
  • $var2각 결과를 계속해서 한 줄로 표시하려면 따옴표로 묶습니다.
  • 그렇지 않으면 따옴표 없이 echo기본적 $var2으로 각 "단어"를 별도의 인수로 해석하고 공백을 포함하여 하나씩 인쇄하므로 결국 하나의 긴 문장이 됩니다.

또한 출력을 파일에 저장할 수 있다는 점을 기억하세요 ~/unique_results.txt. 예를 들면 다음과 같습니다.

echo $var1 | tr ' ' '\n' | sort | uniq  > ~/unique_results.txt
  • >파일 리디렉션은 표준 출력을 지정된 파일로 리디렉션하는 것입니다.

답변2

이것이 bash에 있는 경우 다음은 다음과 같은 저장된 변수의 고유 단어만 인쇄합니다 herpderp.

for w in $herpderp; do echo $w ; done | uniq

관련 정보