最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux join命令的使用及說明

 更新時間:2025年11月11日 15:16:39   作者:fengyehongWorld  
`join`命令用于在Linux中按字段將兩個文件進行連接,類似于SQL的JOIN,它需要兩個文件按用于匹配的字段排序,并且第一個文件的換行符必須是LF,`join`命令支持多種參數(shù),如指定連接鍵、字段分隔符、輸出格式、空字段填充值、忽略大小寫、輸出未匹配行等

一. 基本語法

join 是 Linux 中用于按字段將兩個文件進行連接的命令,功能類似 SQL 的 JOIN。

  • 要求兩個文件按 用于匹配的字段排序好,一定要排序,否則無法正確join
  • 要求用于join的第一個文件的換行符是LF,一定不能是CRLF,否則無法正確匹配
參數(shù)說明
-1 N指定 file1 用第 N 字段作為連接鍵
-2 N指定 file2 用第 N 字段作為連接鍵
-t CHAR設置字段分隔符(如 -t , 表示用逗號)
-o FORMAT指定輸出字段的格式,例如:-o 0 1.2 2.3
-a 1輸出 file1 中所有行(即使沒有匹配),相當于 LEFT OUTER JOIN
-a 2輸出 file2 中所有行(即使沒有匹配),相當于 RIGHT OUTER JOIN
-a 1 -a 2輸出所有行(匹配和未匹配),相當于 FULL OUTER JOIN
-e STRING指定空字段填充值,用于 -a 顯示未匹配時
-i忽略大小寫(等價于 --ignore-case)
-v 1僅顯示 file1 中未匹配的行
-v 2僅顯示 file2 中未匹配的行

二. 數(shù)據(jù)準備

apluser@FengYeHong-HP:0725$ cat students1.txt
101 Alice
102 Bob
103 Carol
apluser@FengYeHong-HP:0725$ cat scores1.txt
101 80
102 90
104 95
apluser@FengYeHong-HP:0725$ cat students2.txt
101,Alice
102,Bob
103,Carol
apluser@FengYeHong-HP:0725$ cat scores2.txt
Alice,80
Bob,90
fengyehong,95

三. 指定文件的連接key

‘默認情況下使用文件的第1列進行join

apluser@FengYeHong-HP:0725$ join students1.txt scores1.txt
101 Alice 80
102 Bob 90
  • 1 1 -2 1:指定第1個文件的第1列和第2個文件的第1列作為join的key
  • -t, -1 2 -2 1
    • -t, :默認情況下使用空格作為列之間的分隔符,通過-t手動指定分隔符為逗號
    • -1 2 -2 1:指定第1個文件的第2列和第2個文件的第1列作為join的key
apluser@FengYeHong-HP:0725$ join -1 1 -2 1 students1.txt scores1.txt
101 Alice 80
102 Bob 90
apluser@FengYeHong-HP:0725$ join -t, -1 2 -2 1 students2.txt scores2.txt
Alice,101,80
Bob,102,90

四.-a輸出指定文件的所有行

  • -a 1:輸出第1個文件的所有行,相當于左連接
  • -a 2:輸出第2個文件的所有行,相當于右連接
apluser@FengYeHong-HP:0725$ join -a 1 students1.txt scores1.txt
101 Alice 80
102 Bob 90
103 Carol
apluser@FengYeHong-HP:0725$ join -a 2 students1.txt scores1.txt
101 Alice 80
102 Bob 90
104 95
  • -a 1 -a 2:輸出所有行
apluser@FengYeHong-HP:0725$ join -a 1 -a 2 students1.txt scores1.txt
101 Alice 80
102 Bob 90
103 Carol
104 95

五.-o指定輸出的字段

  • -o 1.2 2.2 2.3
    • 輸出第1個文件的第2個字段
    • 輸出第2個文件的第2個和第3個字段
apluser@FengYeHong-HP:0725$ cat address1.txt
101 地球 火星
102 水星 金星
104 木星 土星
apluser@FengYeHong-HP:0725$ join students1.txt address1.txt
101 Alice 地球 火星
102 Bob 水星 金星

apluser@FengYeHong-HP:0725$ join -o 1.2 2.2 2.3 students1.txt address1.txt
Alice 地球 火星
Bob 水星 金星
apluser@FengYeHong-HP:0725$ join -o 1.2,2.2,2.3 students1.txt address1.txt
Alice 地球 火星
Bob 水星 金星

六.-v指定輸出未匹配的行

  • 輸出第1個和第2個文件中未匹配的內容
apluser@FengYeHong-HP:0725$ join -v 1 students1.txt address1.txt
103 Carol
apluser@FengYeHong-HP:0725$ join -v 2 students1.txt address1.txt
104 木星 土星
  • 輸出第1個和第2個文件中未匹配的內容
apluser@FengYeHong-HP:0725$ join -v 1 -v 2 students1.txt address1.txt
103 Carol
104 木星 土星

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

武清区| 阿合奇县| 贵南县| 兴安县| 从江县| 衡南县| 肥西县| 恭城| 会同县| 外汇| 泰和县| 崇义县| 清丰县| 长乐市| 二手房| 寿阳县| 衡阳县| 桐梓县| 洮南市| 阿坝县| 寻乌县| 城步| 壶关县| 西畴县| 辛集市| 玉环县| 林口县| 宣恩县| 若羌县| 历史| 上高县| 集安市| 苏尼特左旗| 萝北县| 陆河县| 长沙县| 喜德县| 上思县| 铁力市| 曲水县| 宝丰县|