簡體   English   中英

希望從 .txt 文件中刪除一組字符

[英]Looking to remove a set of characters from a .txt file

我正在尋找一種基於另一個.txt文件從一個.txt文件中刪除內容的方法。

例如,我有一個包含 2000 個隨機字符且未排序的file.txt 我有另一個文件importantfile.txt其中包含 2016 個字符,這些字符與file.txt具有相同的字符以及隨機放置的 16 個其他字符。

有什么辦法可以把file.txt中的字符從importantfile.txt去掉,找到16個字符的字符串。

有些錯誤,我發現diff命令是,它會打印整個字符串,因為它被認為是一個字diff file.txt importantfile.txt將返回w881lYoi8042aKGfwj7EjenViinsmbmnWIHJMZ2T9L40KiLr4x485TM3gKmc1Ig8n6VVW82iqjxypCp19sXIMisX4HIkp54lVohqKSuLjjuns91GiEwtTsvN0zhn6c9GZC2GqUKLsy9v1SvSKvdSPBmIJtNoSwr65BBGqLQ1LdHg93kfZoCq5NPxkaYjIyppzYaczGlwZBrsKyjbTEI5B1aWuw6g9xBZ1viussKRP5C5Pq5yO14P8xBDHGugo93mwf7rsjNehNuxDSAt縮短出於顯而易見的原因,但兩個字符串的開始會w881l.....我也試過java腳本,使用importantfile.replace("file",""); 代碼,但它也返回整個字符串。 有什么幫助,謝謝

如果我理解正確,那怎么樣:

awk '
NR==FNR{str1 = $0; next} {str2 = $0}
END {
    for (i = j = 1; j <= length(str2); ) {
        if (substr(str1, i, 1) == substr(str2, j, 1)) {
            incr = 1
        } else {
            incr = 0
            printf "%s", substr(str2, j, 1)
        }
        i+=incr; j++
    }
    print ""
}' file.txt importantfile.txt

輸出:

d5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM