문자열이 있고 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