Điểm:-6

Làm cách nào để viết một tập lệnh in mọi dòng của tệp không có trong tệp khác? (Kịch bản Bash)

lá cờ us

ví dụ: tôi có 2 tệp văn bản:

tệp1 bao gồm:

một 
b
bb
cc

tệp2 bao gồm:

aa
bc
ab

đầu ra phải là:

$p1.sh tập tin1 tập tin2 
bb
cc

$p1.sh tập tin2 tập tin1
aa
bc
ab

làm cách nào để viết tập lệnh bash này? Tôi đã viết một cái gì đó như thế này nhưng nó không hoạt động:

#!/bin/bash

con mèo "$1" | trong khi đọc m  
làm
    grep -f -v "$m" "$2"
xong | sắp xếp -u

bất kỳ loại hướng dẫn sẽ được đánh giá cao! Tôi là một lập trình viên mới bắt đầu và không có kinh nghiệm viết kịch bản. Cảm ơn bạn!

lá cờ hu
Điều này có trả lời câu hỏi của bạn không? [Làm cách nào để tôi viết một tập lệnh bash in mọi dòng của một tệp trong tệp thứ hai](https://askubuntu.com/questions/1362883/how-do-i-write-a-bash-script-that-prints -mọi-dòng-của-một-tệp-cũng-trong-giây-f)
nl34 avatar
lá cờ us
@mikewhthing Rất tiếc là không, liên kết đó xem xét các dòng phổ biến, nhưng ở đây tôi đang cố in các dòng không phổ biến. Nhiệm vụ hoàn toàn ngược lại! :)
bac0n avatar
lá cờ cn
`-f ` tùy chọn lấy một tệp làm đối số. Tệp thực sự là một danh sách mẫu (một mẫu trên mỗi dòng). Nếu bạn đang cố khớp theo nghĩa đen, bạn cũng nên thêm `-F`.
lá cờ hu
Đây là homewotk? Nó có liên quan gì đến Ubuntu?
NotTheDr01ds avatar
lá cờ vn
Tôi đã cho bạn một phiếu ủng hộ thông cảm, nhưng tôi bắt đầu hiểu tại sao nó lại nhận được nhiều phiếu phản đối như vậy. *Bạn* đã hỏi câu hỏi ngược lại vài ngày trước, bạn vẫn chưa trả lời "tại sao" bạn lại cần câu hỏi này (khiến chúng tôi tin rằng bạn muốn chúng tôi làm bài tập về nhà cho bạn) và câu trả lời thứ hai được cung cấp trên trang khác của bạn câu hỏi chỉ cần thay đổi một lá cờ thành (gợi ý) đảo ngược câu trả lời, bạn sẽ có thể tìm thấy lá cờ này nếu đã thử câu trả lời đó và `man grep` để xem các tùy chọn. Nếu đó không phải là câu hỏi về bài tập về nhà, thì đó là sự cố XY[https://meta.stackexchange.com/q/66377/902710].
Điểm:0
lá cờ cn

Tôi nghĩ bạn cần sử dụng lệnh sort và comm cho công việc này. Ví dụ:

comm -23 <(sort -u file1.txt) <(sort -u file2.txt) > file3.txt

Tôi sẽ để bạn chơi với các cờ triệt tiêu (-1,-2,-3) để có kết quả mong muốn. Tôi đã sử dụng -23 làm ví dụ.

Một phương pháp khác có lẽ dễ dàng hơn là sử dụng awk như sau:

awk 'FNR==NR{lines[$0]=1;next} !($0 in lines)' file1 file2

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.