2023-07-27 linux 使用awk 實(shí)現(xiàn)excel中 vlookup 函數(shù)功能

已知表格1中內(nèi)容為:

Pangenome_ALLmerge????MGAL10B.pep????Orthogroup

HT_HIFI_Bat0035260.1????MGAL_10B003480P1????OG0000006

HT_HIFI_Bat0035260.1????MGAL_10B093273P1????OG0000006

HT_HIFI_Bat0035260.1????MGAL_10B093316P1????OG0000006

HT_HIFI_Bat0035260.1????MGAL_10B093328P1????OG0000006

HT_HIFI_Bat0035260.1????MGAL_10B093379P1????OG0000006

表格2中內(nèi)容為:

Seq Name????GO Seq????Description????Level

HT_HIFI_Bat0000010.1????GO:0016020????Hypothetical predicted protein????3

HT_HIFI_Bat0000010.1????GO:0031224????Hypothetical predicted protein????4

HT_HIFI_Bat0000010.1????GO:0005575????Hypothetical predicted protein????1

HT_HIFI_Bat0000010.1????GO:0110165????Hypothetical predicted protein????2

已知第一個表格中第一列和最后一列內(nèi)容中每一行都互相對應(yīng)惑灵,需求是魁蒜,使用awk在表格2中插入1列,要求插入列的內(nèi)容和第一個表格的最后一列互相對應(yīng)愚隧,列名稱為OG电媳。表格2中原有列都保留踏揣。表格列之間都以\t分割。

實(shí)現(xiàn):

awk 'BEGIN{FS=OFS="\t"} FNR==1{print $0, "OG"; next} FNR==NR{og[$1]=$3; next} {print $0, og[$1] ? og[$1] : "NO_OG"}' 表格1 表格2

在這個命令中匾乓,BEGIN{FS=OFS="\t"} 表示設(shè)置輸入和輸出字段分隔符為制表符捞稿;FNR==1{print $0, "OG"; next} 表示對表格2的第一行添加列名 "OG";FNR==NR{og[$1]=$3; next} 表示對表格1進(jìn)行處理拼缝,將第一列和第三列作為鍵值對存儲在數(shù)組 og 中娱局;{print $0, og[$1]} 表示對表格2的每一行,在末尾添加與其第一列對應(yīng)的表格1中最后一列的值咧七,即 og[$1] 衰齐,og[$1] ? og[$1] : "NO_OG"?表示如果數(shù)組?og?中存在對應(yīng)的值,則輸出該值继阻,否則輸出 "NO_OG"耻涛。

注意,這里假設(shè)表格1和表格2中的第一行都是標(biāo)題行瘟檩。如果不是抹缕,則需要根據(jù)實(shí)際情況修改 FNR==1 的判斷條件。另外墨辛,由于 awk 默認(rèn)使用緩沖區(qū)卓研,可能會導(dǎo)致輸出順序與輸入順序不一致,因此建議在運(yùn)行命令后手動檢查輸出結(jié)果

需求:按照需求對列排序,提取列等奏赘,

實(shí)現(xiàn):awk 'BEGIN{FS=OFS="\t"} {print $4, $2, $3, $5}' 表格2 > 新表格文件名

需求:刪除列中含有NO_OG的行

實(shí)現(xiàn):awk '$2 != "No_OG"' 表格文件名 > 新文件名

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寥闪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子磨淌,更是在濱河造成了極大的恐慌橙垢,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伦糯,死亡現(xiàn)場離奇詭異,居然都是意外死亡嗽元,警方通過查閱死者的電腦和手機(jī)敛纲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剂癌,“玉大人淤翔,你說我怎么就攤上這事∨骞龋” “怎么了旁壮?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谐檀。 經(jīng)常有香客問我抡谐,道長,這世上最難降的妖魔是什么桐猬? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任麦撵,我火速辦了婚禮,結(jié)果婚禮上溃肪,老公的妹妹穿的比我還像新娘免胃。我一直安慰自己,他們只是感情好惫撰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布羔沙。 她就那樣靜靜地躺著,像睡著了一般厨钻。 火紅的嫁衣襯著肌膚如雪扼雏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天莉撇,我揣著相機(jī)與錄音呢蛤,去河邊找鬼。 笑死棍郎,一個胖子當(dāng)著我的面吹牛其障,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播涂佃,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼励翼,長吁一口氣:“原來是場噩夢啊……” “哼蜈敢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起汽抚,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤抓狭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后造烁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體否过,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年惭蟋,在試婚紗的時候發(fā)現(xiàn)自己被綠了苗桂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡告组,死狀恐怖煤伟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情木缝,我是刑警寧澤便锨,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站我碟,受9級特大地震影響放案,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜矫俺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一卿叽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恳守,春花似錦考婴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至伊群,卻和暖如春考杉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背舰始。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工崇棠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人丸卷。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓枕稀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子萎坷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容