我一直在尋找一種方法來解決我的問題,但已經放棄了。我對腳本相當陌生,所以請耐心等待。這是我想要做的:搜索並追加
我有一個文件(讓我們稱之爲file1)與6列。在第一列上有一個ID,並在第7有一個可替代的ID,但整列是空的:
ID col2 col3 col4 col5 col6 AltID AltID2
a a x 43 5 54 A1 D3
b f 4 44 9 51 B3 KL5
c h k 90 0 52 K9 JD3
...
我有另一組文件(6要精確),每個具有8列(它們是製表符分隔的文件)。第四列包含與來自File1,col = ID的ID相匹配的ID,但以隨機順序排列。
我需要做的是從File1中搜索第一列的每一行中的每個ID,在其他6個文件的第四列中找到,當匹配時,將該匹配放在第7列文件1。
另一個棘手的事情是,其中一些ID完全缺失(在這種情況下,他們需要有一個「x」),而其他時候他們有一個以上的備用ID(在這種情況下,我把它們放在旁邊彼此,在File1的第7和8列)
我嘗試了一下grep,但後來偶然發現有人說awk實際上對此更好。我試圖建立一個腳本,並與本想出了:
#! /bin/bash
while read fn; do
STR =$(echo -ne "${fn}" ; awk ' { if($4=="${fn}") printf "%s\t", $7} ' ./*.txt)
echo $STR > test.txt
done < dreg.txt
它顯然沒有工作,我知道代碼的樣子,我不知道我在做什麼(我不是),而是這是我開始的地方。我本質上是試圖讀取我創建的虛擬文件,只有第一列包含文本,然後搜索該目錄中所有其他文本文件的每一行。然後,如果發現了,我是呼應ID,然後是備用ID的名稱,希望能得到以下格式:
ID AltID的AltID2
我的計劃是打印這些結果到一個文件中,然後從那裏出發,但它不起作用。這不是最優雅的解決方案,但正如我所說,我不是很熟練。
任何幫助你們將不勝感激。如果你需要另一個例子或爲了澄清事情,請告訴我。
在此先感謝
嗨sg lecram 非常感謝該腳本。它幾乎完美地工作。我現在遇到了一個問題,它偶爾會在第二列放置「x」,並在第一列放置ID。我還注意到,在某些時候它會打印兩次ID,所以我最終會在某些時候出現三列。 – user2647734
其實,忽略這一點。我解決了這個問題。我有excel插入到txt文件中的換行符。擺脫他們,它像一個魅力工作。非常感謝! – user2647734