Linux shell join命令詳解

2021-10-24 05:39:22 字數 2029 閱讀 5322

linux join命令

2012-02-09 17:49:00| 分類: shell | 標籤:linux join 檔案連線 |字型大小 訂閱

join命令

功能:「將兩個檔案裡指定字段同樣的行連線起來」,即依照兩個檔案裡共有的某一列,將相應的行拼接成一行。

join [options] file1 file2

注:這兩個檔案必須在已經在此列上是依照同樣的規則進行了排序。

join選項

-a filenum:除了顯示匹配好的行另外將指定序號(1或2)檔案裡部匹配的行顯示出來

-e empty:將須要顯示可是檔案裡不存在的域用此選項指定的字元取代

-i :忽略大寫和小寫

-j field :等同於 -1 field -2 field,-j指定乙個域作為匹配字段

-o format:以指定格式輸出

-t char :以指定字元作為輸入輸出的分隔符

join 預設以空白字元做分隔符(空格和\t),能夠使用 join -t $'\t'來指定使用tab做分隔符

-v filenum:與-a相似 但值顯示檔案裡沒匹配上的行

-1 field:以file1中field欄位進行匹配

-2 field:以file2中field欄位進行匹配

--help :列印命令幫助檔案

樣例:檔案 file1.txt

aa 1 2

bb 2 3

cc 4 6

dd 3 3

檔案file2.txt

aa 2 1

bb 8 2

ff 2 4

cc 4 4

dd 5 5

1.join file1.txt file2.txt

輸出:aa 1 2 2 1

bb 2 3 8 2

預設已兩個檔案的第一行做匹配字段,預設以空格(不限個數)做分隔符。

2.join -j 1 file1.txt file2.txt

輸出:aa 1 2 2 1

bb 2 3 8 9

-j選項 指定了以兩個檔案裡第一列做匹配字段 等同於join file1.txt file2.txt

3. join -1 2 -2 3 file1.txt file2.txt

輸出: 1 aa 2 aa 2

2 bb 3 bb 8

4 cc 6 ff 2

4 cc 6 cc 4

以第乙個檔案的第二列和第二個檔案的第三列做匹配字段。因為第二個檔案裡第三列的兩個3 都與第乙個檔案裡第三行因此輸出

4 cc 6 ff 2

4 cc 6 cc 4

4 join -o 1.1 -o 1.2 -o 1.3 -o 2.1 -o 2.2 -o 2.3 -e 'empty' -a 1 file1.txt file2.txt

輸出: aa 1 2 aa 2 1

bb 2 3 bb 8 2

cc 4 6 empty empty empty

dd 3 3 empty empty empty

-o 指定 將file1的1,2,3列,file2的1,2,3 列都輸出。-a指定將file1中不匹配的行也輸出,可是file2中沒有與file1後兩行相應的字段,因此使用empty補齊。

5.join -v 1 file1.txt file2.txt

輸出: cc 4 6

dd 3 3

-v 1 將file1中不匹配的行輸出

ps:join命令和資料庫中的join命令很相似。

儘管file1和file2都已經排序,可是因為在第三行時開始不匹配因此僅僅匹配上了前兩行,後面的行儘管欄位也能夠相應可是以不能匹配。join命令,對檔案格式的要求很強,假設想要更靈活的使用,可用awk命令,參加awk例項

6. join 標準輸入

有時我們須要將多個格式同樣的檔案join到一起,而join接受的是兩個檔案的指令,此時我們能夠使用管道和字元「-"來實現

join file1 file2 | join - file3 | join - file4

這樣就能夠將四個檔案 連線到 一起了。

Linux shell join命令詳解

linux join命令 2012 02 09 17 49 00 分類 shell 標籤 linux join 檔案連線 字型大小 訂閱 join命令 功能 將兩個檔案裡指定字段同樣的行連線起來 即依照兩個檔案裡共有的某一列,將相應的行拼接成一行。join options file1 file2 注...

Android MTK Android 編譯命令

命令格式 maketek option project action modules option t tee 輸出log資訊到當前終端 o opt 編譯附加條件,一般使用 opt target build variant user來編譯使用者板軟體 h help 列印幫助資訊並退出 project...

applicationContext的命名空間

xsi schemalocation spring beans.xsd xmlns xmlns 宣告了乙個命名空間 例如 xmlns aop 這樣就可以用標籤了.通常情況下還需要提供乙個對映位址.比如 xmlns aop 提供乙個對映位址後變為 xmlns aop xsi schemalocatio...