특정 열의 다른 파일에있는 문자열 검색

Biobudhan

두 개의 파일이 있습니다.

1) 다음과 같은 내용의 탭 파일. 이 참조 파일을 호출 해 보겠습니다.

    V$HMGIY_01_rc   Ncor=0.405
V$CACD_01   Ncor=0.405
    V$GKLF_02   Ncor=0.650
    V$AML2_Q3   Ncor=0.792
    V$WT1_Q6    Ncor=0.607
V$KID3_01   Ncor=0.668
V$CNOT3_01  Ncor=0.491
    V$KROX_Q6   Ncor=0.423
V$ETF_Q6_rc Ncor=0.547
V$E2F_Q2_rc Ncor=0.653
V$SP1_Q6_01_rc  Ncor=0.650
V$SP4_Q5    Ncor=0.660

2) 두 번째 탭 파일에는 아래와 같이 검색 문자열 X가 포함됩니다. 이 파일을 search_string으로 부르 자 :

           A                 X
  NF-E2_SC-22827    NF-E2
  NRSF              NRSF
  NFATC1_SC-17834   NFATC1
  NFKB              NFKB
  TCF3_SC-349           TCF3
  MEF2A             MEF2A

내가하고 싶은 것은 : 첫 번째 검색어 (search_string 파일에서 X 열)를 가져 와서 참조 파일의 첫 번째 열에서 발생하는지 확인하십시오. 예 : 첫 번째 검색어는 NF-E2입니다. 이 문자열이 참조 파일의 첫 번째 열에 나타나는지 확인해야합니다. 그것이 발생하면 1 점을주고 그렇지 않으면 0 점을줍니다. 또한 패턴과 일치하는 횟수를 세고 싶습니다. 다음과 같이 출력을 생성하고 싶습니다.

    X       X in file?  number of times it occurs
    NF-E2          1                            3
    NRSF           0                            0
    NFATC1         0                            0
    NFKB           1                            7
    TCF3           0                            0

참고 : 다른 파일에서 각 문자열을 검색해야합니다. 즉, 첫 번째 문자열 (Nf-E2)은 NF-E2.tab 파일에서 검색해야합니다. 두 번째 문자열 (NRSF)은 NRSF.tab 파일 등에서 검색되어야합니다. 또한 R 또는 Perl 스크립트 만 사용하여 프로그래밍하고 싶습니다.

도와주세요!!

마크 세첼

여기에 맞게 연주하고 변경할 수있는 한 줄짜리가 있습니다.

perl -lanE '$str=$F[1];  $f="/home/$str/list/$str.txt"; $c=`grep -c "$str" "$f"`;chomp($c);$x=0;$x++ if $c;say "$str\t$x\t$c"' file2

두 번째 파일이라고 가정합니다 file2. 다음은 내 컴퓨터에서 만든 입력 파일의 샘플 출력입니다.

NF-E2   0   0
NRSF    1   1
NFATC1  1   2
TCF3    1   3
MEF2A   0   0

단지 grep -c발생 횟수를 계산하고 변수에 저장하는 데 사용합니다 $c. chomp()의 출력에서 ​​줄 바꿈을 제거합니다 grep. $x0으로 설정되고 개수 ( $c)가 0보다 크면 증가합니다. 그런 다음 결과는를 사용하여 인쇄됩니다 say.

검색 문자열과 검색 할 파일 이름부터 시작하겠습니다.

$perl -lanE '$str=$F[1];$f=$str.".txt";print "$str $f"' file2
NF-E2 NF-E2.txt
NRSF NRSF.txt
NFATC1 NFATC1.txt
NFKB NFKB.txt
TCF3 TCF3.txt
MEF2A MEF2A.txt

설명

사용 된 Perl 명령 줄 스위치 :

-l Perl은 우리를 위해 라인 엔딩을 처리합니다. Perl에게 감사드립니다!

-a 입력 파일의 필드를 다음과 같은 배열로 분할합니다. $F[]

-n 입력 파일 (file2)의 각 줄을 처리하기 위해 코드 주위에 암시 적 루프를 배치합니다.

-E작은 따옴표 안에있는 코드를 실행하고 say기능을 활성화합니다.

그런 다음 작은 따옴표 ( '') 안의 실제 코드 는 두 번째 필드의 값을 할당합니다. 즉, $F[1]필드가 0에서 시작하기 때문에 변수에 $str. $str".txt"가 추가 된 값을 검색 문자열 인 변수 $ f에 할당합니다 . 그런 다음 검색 문자열 $str과 파일 이름을 인쇄합니다 $f.

편집 됨

Bash가 더 이해하기 쉽다면 여기에 Bash 버전이 있습니다.

#!/bin/bash

# Set tabs to align output columns
tabs -12

# Output headers
echo -e "X\tPresent?\tCount"

# Extract second column of file2
awk '{print $2}' file2 | while read item
do
   # Work out name of file to search in
   FILE="/home/${item}/list/${item}.txt"

   # Count occurrences of $item in $FILE
   COUNT=$(grep -cw "$item" "$FILE")

   # If COUNT>0 the value is present
   PRESENT=0
   [ $COUNT -gt 0 ] && PRESENT=1

   echo -e "$item\t$PRESENT\t$COUNT"
done

파일을로 저장 한 go후 다음과 같이 실행하십시오.

chmod +x go    # Only necessary for the first run
./go

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Android : 다른 문자열에서 특정 패턴의 문자열을 검색하는 방법

분류에서Dev

다른 문자열에서 정확한 문자열 검색

분류에서Dev

Pandas는 특정 열에서 문자열을 검색합니다.

분류에서Dev

일련의 문자열 검색에는 Java의 ArrayList에서 특정 문자열이 포함됩니다.

분류에서Dev

데이터 프레임 행에서 특정 문자열을 검색하고 문자열이 있으면 파이썬의 다른 열에 표시하십시오.

분류에서Dev

다른 파일에 복사 할 수 있도록 파일을 읽고 특정 문자열의 첫 번째 항목을 검색해야합니다.

분류에서Dev

파일에서 특정 문자열을 검색하고 제거합니다.

분류에서Dev

특정 문자열-다중 열 뒤의 값 검색

분류에서Dev

문자열 목록 검색은 Java의 정렬 된 ArrayList에서 특정 문자열로 시작합니다.

분류에서Dev

특정 길이의 특정 문자열에 대한 C # 검색

분류에서Dev

C ++의 문자열에서 특정 문자 검색 및 제거

분류에서Dev

csv 파일의 문자열 입력에 대한 특정 열 검색

분류에서Dev

awk CSV 파일의 특정 열에서 문자열 검색 및 바꾸기

분류에서Dev

특정 문자열 검색

분류에서Dev

Android의 구문 분석 테이블에서 특정 열 (문자열 포함)에서 특정 문자열을 검색하고 싶습니다.

분류에서Dev

문자열의 특정 부분 이후에 숫자 검색

분류에서Dev

특정 패턴의 문자열에서 숫자 검색

분류에서Dev

R 문자열 검색에 따라 열 값을 다른 열 값으로 설정

분류에서Dev

두 개의 다른 열에서 검색 문자열

분류에서Dev

두 열에서 두 개의 다른 문자열 검색

분류에서Dev

특정 문자열까지 텍스트 파일에서 검색

분류에서Dev

파일의 특정 지점 이후에만 문자열 검색 및 일치

분류에서Dev

R에서 문자열의 특정 부분 검색

분류에서Dev

특정 열로 그룹화 된 r의 다른 행에서 필터링 / 검색

분류에서Dev

Bash, 텍스트 파일에서 특정 문자열의 두 세트 검색

분류에서Dev

파일에서 특정 부분 문자열의 반복 된 항목 검색

분류에서Dev

Windows / CLI | 파일에서 특정 문자열 / 값을 검색하고 변수로 설정합니다.

분류에서Dev

Excel : 다른 열의 열에서 하위 문자열을 검색하는 방법

분류에서Dev

다른 문자열에서 하위 문자열 검색

Related 관련 기사

  1. 1

    Android : 다른 문자열에서 특정 패턴의 문자열을 검색하는 방법

  2. 2

    다른 문자열에서 정확한 문자열 검색

  3. 3

    Pandas는 특정 열에서 문자열을 검색합니다.

  4. 4

    일련의 문자열 검색에는 Java의 ArrayList에서 특정 문자열이 포함됩니다.

  5. 5

    데이터 프레임 행에서 특정 문자열을 검색하고 문자열이 있으면 파이썬의 다른 열에 표시하십시오.

  6. 6

    다른 파일에 복사 할 수 있도록 파일을 읽고 특정 문자열의 첫 번째 항목을 검색해야합니다.

  7. 7

    파일에서 특정 문자열을 검색하고 제거합니다.

  8. 8

    특정 문자열-다중 열 뒤의 값 검색

  9. 9

    문자열 목록 검색은 Java의 정렬 된 ArrayList에서 특정 문자열로 시작합니다.

  10. 10

    특정 길이의 특정 문자열에 대한 C # 검색

  11. 11

    C ++의 문자열에서 특정 문자 검색 및 제거

  12. 12

    csv 파일의 문자열 입력에 대한 특정 열 검색

  13. 13

    awk CSV 파일의 특정 열에서 문자열 검색 및 바꾸기

  14. 14

    특정 문자열 검색

  15. 15

    Android의 구문 분석 테이블에서 특정 열 (문자열 포함)에서 특정 문자열을 검색하고 싶습니다.

  16. 16

    문자열의 특정 부분 이후에 숫자 검색

  17. 17

    특정 패턴의 문자열에서 숫자 검색

  18. 18

    R 문자열 검색에 따라 열 값을 다른 열 값으로 설정

  19. 19

    두 개의 다른 열에서 검색 문자열

  20. 20

    두 열에서 두 개의 다른 문자열 검색

  21. 21

    특정 문자열까지 텍스트 파일에서 검색

  22. 22

    파일의 특정 지점 이후에만 문자열 검색 및 일치

  23. 23

    R에서 문자열의 특정 부분 검색

  24. 24

    특정 열로 그룹화 된 r의 다른 행에서 필터링 / 검색

  25. 25

    Bash, 텍스트 파일에서 특정 문자열의 두 세트 검색

  26. 26

    파일에서 특정 부분 문자열의 반복 된 항목 검색

  27. 27

    Windows / CLI | 파일에서 특정 문자열 / 값을 검색하고 변수로 설정합니다.

  28. 28

    Excel : 다른 열의 열에서 하위 문자열을 검색하는 방법

  29. 29

    다른 문자열에서 하위 문자열 검색

뜨겁다태그

보관