정렬 된 작은 스 크 립 트
질문:
두 파일 의 첫 번 째 열 이 같 으 면 각 줄 이 첫 번 째 열 을 제외 하고 같은 수의 개 수 를 얻어 야 합 니 다. 예 를 들 어
- ~$ cat kkk
- 1 2 3
- 2 9 8 3
- 3 6 7 8 5
- 4 3 5 1
- 5 8
- cat ddd
- 1 3 2
- 2 8 9 1
- 3 6 8 9 5
- 4 3 2
- 5 9 2
원 하 는 결과
- $ cat sort.txt
- 1 2
- 2 2
- 3 3
- 4 1
- 5 0
결과 에서 첫 번 째 열 은 파일 의 첫 번 째 열 이 고 두 번 째 열 은 두 파일 의 각 열 에 중복 되 는 개수 입 니 다. 예 를 들 어 결과 에서 첫 번 째 줄 의 두 번 째 열 은 d. txt 첫 번 째 줄 과 e. txt 첫 번 째 줄 로 첫 번 째 열 을 제외 하고 두 개의 숫자 가 중복 되 어 얻 은 것 입 니 다.
스 크 립 트:
- #!/bin/bash
- PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
- export PATH
-
- Var_file1=`mktemp /tmp/tmp.XXXXXXX`
- Var_file2=`mktemp /tmp/tmp.XXXXXXX`
- Var_id=`mktemp /tmp/tmp.XXXXXXX`
- Var_sort=`mktemp /tmp/tmp.XXXXXX`
-
- cut -d ' ' -f 2- $1 > $Var_file1
- cut -d ' ' -f 2- $2 > $Var_file2
- cut -d ' ' -f 1 $2 > $Var_id
-
- while read -u 3 Var_a; read -u 5 Var_b
- do
- echo ${Var_a} ${Var_b} | sed 's: :
:g' | sort | uniq -d |wc -l >> $Var_sort
- done 3<$Var_file1 5<$Var_file2
- paste $Var_id $Var_sort>sort.txt
- rm -f $Var_file1 $Var_file2 $Var_id $Var_sort
这个脚本用到了文件描述符,同时对两文件实现读取...记录一下...
如果用awk有更简单的办法,其它兄弟的
- awk 'NR==FNR{for(i=2;i<=NF;i++){a[FNR","i]=$i;b[FNR]=NF}}NR>FNR{n=0;for(i=2;i<=NF;i++)for(j=1;j<=b[FNR];j++)if($i==a[FNR","j])n++;print $1,n}' kkk ddd
awk还没熟悉到这个地步...学习中.... 还有管道命令,其它兄弟的
- while read line; do echo "${line%% *} $(echo "${line#* }" | tr ' ' '
' | sort | uniq -d | wc -l)"; done < <(join ddd kkk)
read 명령 참조:
- p | & (파이프, & 의 기호 이름) 로 Korn 셸 이 실행 하 는 프로 세 스 의 출력 을 읽 어 입력 합 니 다.
주: - p 로고 의 파일 끝 자 는 이 프로 세 스 를 삭제 하기 때문에 다른 프로 세 스 가 생 성 됩 니 다.
- r 읽 기 명령 을 지정 하여 제어 문자 가 아 닌 입력 줄 의 일부분 으로 처리 합 니 다.
- s 입력 을 명령 으로 Korn 셸 의 과거 기록 파일 에 저장 합 니 다.
- u [n] 한 자릿수 파일 설명 기호 n 을 읽 어 입력 합 니 다.파일 설명 자 는 ksh exec 내 장 된 명령 으로 열 수 있 습 니 다.n 의 부족 한 값 은 0 이 고 키 보드 를 나타 낸다.값 2 는 표준 오 류 를 나타 낸다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZSH에서 물고기까지
ZSH는 수년 동안 내 기본 셸이었습니다.
이제 몇 달 동안 사용하면서 ZSH 구성에 대해 몇 가지 사항을 발견했습니다.
우리는 을 제공하는 시스템과 더 빨리 상호 작용하는 경향이 있습니다.
내.zshrc 구성에는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.