Cấp bậc tác giả:

TRAINING

Xóa các dòng dữ liệu của file A có trong file B bằng linux

Được viết bởi webmaster ngày 09/08/2020 lúc 06:16 PM
Yêu cầu hai tập tin file A và file B đã được sắp xếp
  • 0
  • 4618

Xóa các dòng dữ liệu của file A có trong file B bằng linux

Cách đầu tiên, yêu cầu hai tập tin file A và file B đã được sắp xếp. 

Sau đó, để xóa các dòng dữ liệu của file A xuất hiện trong file B, bạn dùng command sau:
comm -23 fileA fileB > output
 
$ cat a.txt 
a
b
c
d
$ cat b.txt 
a 
b
$ comm -23 a.txt b.txt 
a
c
d

Khi đó file output sẽ là các dòng dữ liệu của file A nhưng không xuất hiện trong file B. Tham số -23 lấy các dòng xuất hiện trong cả 2 file, hoặc chỉ xuất hiện trong file B.

Trong trường hợp bạn muốn giữ nguyên trật tự sắp xếp ban đầu của file mà vẫn muốn đạt được mục đích tương tự, thì dùng command sau:
# grep -Fvxf <lines-to-remove> <all-lines>
$ grep -Fvxf fileB fileA > output
 
$ cat a.txt 
a
d
c
b
$ cat b.txt 
a 
b
$ grep -Fvxf b.txt a.txt 
a
d
c

Nguồn bài viết: Sưu tầm

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML