1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Tìm hiểu thêm.

[BASH SHELL] Script so sánh chuỗi trong file

Thảo luận trong 'Linux - Unix' bắt đầu bởi tuantv, 29/10/14. Trả lời: 1 Xem: 976.

Chia sẻ trang này

Thị Trường Xe Máy

  1. tuantv

    tuantv New Member
    New Member

    Tham gia ngày:
    6/3/14
    Bài viết:
    30
    Đã được thích:
    46
    - Bài toán như sau: Có hai file x1.txt và x2.txt, script có tác dụng in ra những chuỗi hay ký tự có trong file x1 nhưng không có trong file x2 ra một file khac.txt (trường hợp này x1.txt có n cột cách nhau bằng dấu tab và n++ dòng bất kỳ) và x2.txt bất kỳ dòng và cột.
    Mã:
    #!/bin/bash
    rm -f khac_*
    rm -f file_*
    m=$(head -1 x1.txt | awk '{print NF}')
    for ((i=1;i<=$m;i++))
            do
            cat x1.txt | awk -v s=$i '{print $s}' >file_$i.txt
            done
    for ((i=1;i<=$m;i++))
            do
    for j in $(cat file_$i.txt)
            do
            a=$(grep -w $j x2.txt)
            if [ -z "$a" ]; then
            echo $j >>khac_$i.txt
            else
            echo "*" >>khac_$i.txt
            fi
            done
            done
    paste $(ls | grep khac_) >khacbiet.txt
    echo "Su khac biet giua x1 va x2, "*" la giong nhau trong ca 2 file"
    echo "File x1"
    cat x1.txt
    echo "File x2"
    cat x2.txt
    echo "Su khac biet: Ky tu co trong file x1 nhung khong co trong x2"
    cat khacbiet.txt
     
    Tags: Không có
    4 people like this.
  2. gatrep81

    gatrep81 New Member
    New Member

    Tham gia ngày:
    14/3/14
    Bài viết:
    90
    Đã được thích:
    93
    Bài viết này hay, nhưng dùng vào việc gì thế mod Tuantv
     

Chia sẻ trang này

Users Viewing Thread (Users: 0, Guests: 0)