介紹一下linux系統的join 命令

2021-10-20 07:36:18 字數 1933 閱讀 9160

現在越來越多的人使用linux系統,今天來給大家介紹一下join命令

1.命令簡介

將兩個檔案按照指定的相同字段進行笛卡爾乘積橫向拼接,並輸出到標準輸出。預設情況下,join 字段分隔符是空格或 tab。join 時,兩個檔案需要按照某個欄位排好序。

笛卡爾乘積指兩個集合 x 和 y 成員相互組合構成的有序對的集合。比如集合 x=,y=,則

x×y=

y×x=

2.命令格式join [options] file1 file2

當 file1 或 file2 是連字元 -(二者不能同時是 -),那麼內容從標準輸入讀取。

3.選項說明

-a filenum

除了顯示原來的輸出內容之外,還顯示檔案中沒有相同欄位的行。filenum 取值為 1 或 2,分別對應 file1 和 file2

-e empty

若 file1 與 file2 中找不到指定的列,則在輸出中填入選項中的字串

-i, --igore-case

比較列內容時,忽略大小寫

-j field

等價於 -1 field -2 field

-o format

按照指定的格式顯示結果

-t char

指定輸入和輸出列的分隔字元

-v filenum

作用類似於 -a filenum,但是只顯示檔案中沒有相同列的行

-1 field

連線 file1 指定的列。field 取 1 表示第一列,2 表示第二列,以此類推

-2 field

連線 file2 指定的列。field 取 1 表示第一列,2 表示第二列,以此類推

--check-order

預設選項,檢查檔案是否已經排序

--nocheck-order

不檢查檢查檔案是否已經排序

--help

顯示幫助資訊並退出

--version

顯示版本資訊並退出

4.常用示例(1)連線兩個檔案,預設以第一列作為連線字段。

# file1 內容如下

lvlv dablelv 25

zhangsan san 12

# file2 內容如下

lvlv english 15

lvlv math 75

zhangsan math 14

zhouxun english 45

join file1 file2

lvlv dablelv 25 english 15

lvlv dablelv 25 math 75

zhangsan san 12 math 14

(2)還是以上面的兩個檔案為例,顯示指明按照第一列中文名進行連線。

join -j 1 file1 file2

# 或join -1 1 -2 1 file1 file2

(3)如果想顯示沒有相同欄位的行,使用 -a1 或 -a2 指定顯示第乙個或者第二個檔案的行。

join -a2 file1 file2

lvlv dablelv 25 english 15

lvlv dablelv 25 math 75

zhangsan san 12 math 14

zhouxun english 45 //顯示了檔案 file2 中未匹配的一行

介紹一下linux系統 tee 命令

現在越來越多人使用linux系統,今天來給大家介紹一下tee命令 1.命令簡介 tee 命令從標準輸入讀取資料後,將資料重定向到給定的檔案和標準輸出。給定的檔案可以有多個。因為 tee 意為字母 t,資料從左邊 標準輸入 流入,從右邊 標準輸出 和下面 檔案 分流輸出,字母 t 的形狀很形象地說明了...

介紹一下索引

根據資料庫的功能,可以在 資料庫設計器中建立四種索引 普通索引 唯一索引 主鍵索引和 聚集索引。有關資料庫所支援的索引功能的詳細資訊,請參見資料庫文件。普通索引 這是最基本的索引型別,而且它沒有唯一性之類的限制。普通索引可以通過以下幾種方式建立 建立索引,例如create index 索引的名字 o...

介紹一下Spring Cloud Config

spring cloud config為分布式系統中的外部配置提供伺服器和客戶端支援。使用config server,您可以在所有環境中管理應用程式的外部屬性。客戶端和伺服器上的概念對映與springenvironment和propertysource抽象相同,因此它們與spring應用程式非常契合...