Linux paste命令

目錄

  • 一. 簡介
  • 二. 基本語法
  • 三. 小案例


一. 簡介

paste 命令用于合并多個文件的行,按列方式輸出,默認以制表符(Tab)分隔。

?基本語法

paste [選項] 文件1 文件2 ...

二. 基本語法

  • <()的方式模擬文件流
  • paste命令將2個文件流粘貼在一起
  • 💥注意:如果是真實文件的話,需要注意換行符是linux系統的換行符LF,而不是Windows系統的CRLF,否則會丟失數據。
apluser@ubuntu24-01:~$ seq 3
1
2
3
apluser@ubuntu24-01:~$ echo -e "A\nB\nC"
A
B
C
apluser@ubuntu24-01:~$ paste <(seq 3) <(echo -e "A\nB\nC")
1       A
2       B
3       C
  • -s:實現行轉列
apluser@ubuntu24-01:~$ paste -s <(seq 3)
1       2       3
apluser@ubuntu24-01:~$ paste -s -d "," <(seq 3)
1,2,3
  • -d:指定分隔符
apluser@ubuntu24-01:~$ paste -s <(echo -e "A\nB\nC")
A       B       C
apluser@ubuntu24-01:~$ paste -s -d "_" <(echo -e "A\nB\nC")
A_B_C
apluser@ubuntu24-01:~$ paste -s -d "," <(seq 3) <(echo -e "A\nB\nC")
1,2,3
A,B,C

三. 小案例

?有如下日志,現要求將下面的字段抽取出來

  • 線程號
  • isuuePayId
  • jmw_state
apluser@ubuntu24-01:~/work/20250324$ cat system_info.log
2323 SEQIN mmm isuuePayId=5768awe uuid=woenoo; jmw_state=success method=paypay info=ppp
2323 SEQOUT COST=45726
2345 SEQIN mmm isuuePayId=34895ry uuid=;ljkler jmw_state=faile method=alipay info=ddd
2345 SEQOUT COST=34855
2355 SEQIN mmm isuuePayId=544ttf uuid=ouih990 jmw_state=success method=paypay info=iii
2355 SEQOUT COST=857
2370 SEQIN mmm isuuePayId=86nny uuid=ksdfgh999 jmw_state=faile method=linepay info=lll
2370 SEQOUT COST=5453
  • 先通過SEQIN關鍵詞進行初步的過濾
  • 再通過-e配置項將各個指定的字段抽取出來
  • 抽取之后的數據,有若干行,只有1列
apluser@ubuntu24-01:~/work/20250324$ grep "SEQIN" system_info.log | grep -o -e "^\S*" -e "isuuePayId=\S*" -e "jmw_state=\S*"
2323
isuuePayId=5768awe
jmw_state=success
2345
isuuePayId=34895ry
jmw_state=faile
2355
isuuePayId=544ttf
jmw_state=success
2370
isuuePayId=86nny
apluser@ubuntu24-01:~/work/20250324$ grep "SEQIN" system_info.log | grep -o -e "^\S*" -e "isuuePayId=\S*" -e "jmw_state=\S*" > temp.dat
  • 每3行要合并為一行,可以通過split命令指定行數進行切分
apluser@ubuntu24-01:~/work/20250324$ split -l 3 temp.dat part_ --numeric-suffixes --additional-suffix=.log
apluser@ubuntu24-01:~/work/20250324$
apluser@ubuntu24-01:~/work/20250324$ ls -l part_*
-rw-rw-r-- 1 apluser apluser 42 Mar 24 21:24 part_00.log
-rw-rw-r-- 1 apluser apluser 40 Mar 24 21:24 part_01.log
-rw-rw-r-- 1 apluser apluser 41 Mar 24 21:24 part_02.log
-rw-rw-r-- 1 apluser apluser 38 Mar 24 21:24 part_03.log
apluser@ubuntu24-01:~/work/20250324$
apluser@ubuntu24-01:~/work/20250324$ cat part_00.log
2323
isuuePayId=5768awe
jmw_state=success

🧐上面的命令可以通過下面這種方式組合起來使用

  • 其中split -l 3 - part_中的-作為split命令的輸入
  • split可以從標準輸入讀取數據【- 代表標準輸入】
grep "SEQIN" system_info.log | grep -o -e "^\S*" -e "isuuePayId=\S*" -e "jmw_state=\S*" | \
split -l 3 - part_ --numeric-suffixes=0 --additional-suffix=.log
  • 然后可以通過paste命令的-s選項進行列轉行,并且通過-d選項指定分隔符
apluser@ubuntu24-01:~/work/20250324$ paste -s -d "," part_*
2323,isuuePayId=5768awe,jmw_state=success
2345,isuuePayId=34895ry,jmw_state=faile
2355,isuuePayId=544ttf,jmw_state=success
2370,isuuePayId=86nny,jmw_state=faile

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/74480.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/74480.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/74480.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uniapp處理流式請求

在uniapp里面處理流式請求相對于web端來說有點麻煩&#xff0c;下面我將講述幾種處理流式請求的方式。 1.websocket WebSocket 是處理實時數據流的最佳選擇之一&#xff0c;UniApp 提供了原生的 WebSocket 支持&#xff1a; <template><view class"container&…

低代碼理解

一、低代碼開發的核心定義 低代碼開發是通過可視化界面和聲明式編程替代傳統手工編碼的軟件開發范式&#xff0c;其核心目標是&#xff1a; 降低技術門檻&#xff1a;允許非專業開發者&#xff08;公民開發者&#xff09;參與應用構建提升開發效率&#xff1a;通過復用預制組…

WHAM 人體3d重建部署筆記 vitpose

目錄 視頻結果: docker安裝說明: conda環境安裝說明: 依賴項: 依賴庫: 安裝 mmpose,mmcv 下載模型權重: 算法原理, demo腳本 報錯inference_top_down_pose_model: 測試命令: 視頻結果: wham_smpl預測結果 git地址: GitHub - yohanshin/WHAM WHAM: Recons…

react 大屏根據屏幕分辨率縮放

記錄&#xff0c;以防忘記 const DataLargeScreen () > {const layoutRef useRef<any>();// ui稿寬度const width useRef(1920).current;// ui稿高度const height useRef(1080).current;const [scaleValue, setScaleValue] useState(1);const useWhichScaleValu…

【網絡】網關

【網絡】網關 網關 是計算機網絡中用于連接兩個不同網絡的設備或服務器&#xff0c;它充當著“翻譯器”和“轉發器”的角色&#xff0c;將數據包從一個網絡傳遞到另一個網絡&#xff0c;并在必要時進行協議轉換和數據重包裝。 主要功能 數據轉發&#xff1a;當本地網絡設備發…

Axure大屏可視化模板:賦能多領域,開啟數據展示新篇章

在當今這個數據爆炸的時代&#xff0c;數據已經成為各行各業的核心資產。然而&#xff0c;如何高效、直觀地展示數據&#xff0c;并將其轉化為有價值的決策依據&#xff0c;成為了許多企業和組織面臨的共同挑戰。Axure大屏可視化模板&#xff0c;作為一款強大的數據展示工具&am…

數據不外傳!通過內網穿透實現綠聯NAS遠程訪問的安全配置方案

文章目錄 前言1. 開啟ssh服務2. ssh連接3. 安裝cpolar內網穿透4. 配置綠聯NAS公網地址 前言 大家好&#xff0c;今天要帶給大家一個超級酷炫的技能——如何讓綠聯NAS秒變‘千里眼’&#xff0c;通過簡單的幾步操作就能輕松實現內網穿透。想象一下&#xff0c;無論你身處何地&a…

面試題精選《劍指Offer》:JVM類加載機制與Spring設計哲學深度剖析-大廠必考

一、JVM類加載核心機制 &#x1f525; 問題5&#xff1a;類從編譯到執行的全鏈路過程 完整生命周期流程圖 關鍵技術拆解 編譯階段 查看字節碼指令&#xff1a;javap -v Robot.class 常量池結構解析&#xff08;CONSTANT_Class_info等&#xff09; 類加載階段 // 手動加載…

WordPress分類目錄綁定二級域名插件

一.子域名訪問形式 1.wordpress 分類目錄 轉換為 子域名 &#xff08;綁定二級域名&#xff09;形式 2.wordpress 頁面轉換為 子域名 &#xff08;綁定二級域名&#xff09; 形式 3.wordpress 作者頁轉換為 子域名 &#xff08;綁定二級域名&#xff09;形式 4.為不同子域名…

Shopify Checkout UI Extensions

結賬界面的UI擴展允許應用開發者構建自定義功能&#xff0c;商家可以在結賬流程的定義點安裝&#xff0c;包括產品信息、運輸、支付、訂單摘要和Shop Pay。 Shopify官方在去年2024年使用結賬擴展取代了checkout.liquid&#xff0c;并將于2025年8月28日徹底停用checkout.liquid…

華為HCIE方向那么多應該如何選擇?

在華為認證體系里&#xff0c;HCIE作為最高等級的認證&#xff0c;是ICT領域專業實力的有力象征。HCIE設置了多個細分方向&#xff0c;這些方向宛如不同的專業賽道&#xff0c;為期望在ICT行業深入發展的人提供了豐富的選擇。今天&#xff0c;咱們就來好好聊聊華為HCIE方向的相…

bootstrap介紹(前端框架)(提供超過40種可復用組件,從導航欄到輪播圖,從卡片到彈窗)bootstrap框架

文章目錄 Bootstrap框架全解析起源與發展核心特性與優勢響應式設計組件豐富度一致性與兼容性 柵格系統深度解析柵格系統工作原理斷點設置與響應式策略 組件系統導航組件表單系統 自定義與擴展SASS變量系統構建系統優化 性能優化策略按需加載減少嵌套層級 實踐案例&#xff1a;電…

FastGPT原理分析-數據集創建第二步:處理任務的執行

概述 文章《FastGPT原理分析-數據集創建第一步》已經分析了數據集創建的第一步&#xff1a;文件上傳和預處理的實現邏輯。本文介紹文件上傳后&#xff0c;數據處理任務的具體實現邏輯。 數據集創建總體實現步驟 從上文可知數據集創建總體上來說分為兩大步驟&#xff1a; &a…

el-select下拉框,搜索時,若是匹配后的數據有且只有一條,則當失去焦點時,默認選中該條數據

1、使用指令 當所需功能只能通過直接的 DOM 操作來實現時&#xff0c;才應該使用自定義指令。可使用方法2封裝成共用函數&#xff0c;但用指令他人復用時比較便捷。 <el-tablev-loading"tableLoading"border:data"tableList"default-expand-allrow-key…

vue中keep-alive組件的使用

keep-alive是vue的內置組件&#xff0c;它的主要作用是對組件進行緩存&#xff0c;避免組件在切換時被重復創建和銷毀&#xff0c;從而提高應用的性能和用戶體驗。它自身不會渲染一個 DOM 元素&#xff0c;也不會出現在父組件鏈中。使用時&#xff0c;只需要將需要緩存的組件包…

Kafka攔截器

文章目錄 1.定義2.生產者攔截器2.1 示例 3.消費者攔截器3.1 示例 1.定義 攔截器主要用于實現clients端的定制化需求&#xff0c;包括消息在生產者發送到 Kafka 或者在消費者接收消息之前進行一些定制化的操作。用于在消息發送和接收的關鍵步驟中進行攔截和處理。可以修改消息&…

進程間通信(匿名管道) ─── linux第22課

目錄 進程間通信 進程間通信目的 進程間通信的發展 進程間通信分類 1. 管道 2. System V IPC 3. POSIX IPC 管道 什么是管道 站在文件描述符角度-深度理解管道 站在內核角度-管道本質 ?編輯 匿名管道 測試匿名管道的讀寫 匿名管道的四大現象&#xff1a; 匿…

架構思維:通用系統設計方法論_從復雜度分析到技術實現指南

文章目錄 Question訂單履約原始架構痛點目標架構架構圖說明關鍵設計點優點 設計方法論復雜來源解決方案評估標準從設計原則出發 技術實現 &#xff08;以選型Redis為例&#xff09;Redis消息隊列的實現細節高可用設計 總結 Question 我們經常聊如何設計一個比較完善的系統&…

Excel(實戰):INDEX函數和MATCH函數、INDEX函數實戰題

目錄 經典用法兩者嵌套查值題目解題分析 INDEX巧妙用法讓數組公式&#xff0c;自動填充所有、有數據的行/列INDEX函數和SEQUENCE函數 經典用法兩者嵌套查值 題目 根據左表查詢這三個人的所有數據 解題分析 INDEX函數的參數&#xff1a;第1個參數是選定查找范圍&#xff0c…

ECharts儀表盤-儀表盤25,附視頻講解與代碼下載

引言&#xff1a; ECharts儀表盤&#xff08;Gauge Chart&#xff09;是一種類似于速度表的數據可視化圖表類型&#xff0c;用于展示單個或多個變量的指標和狀態&#xff0c;特別適用于展示指標的實時變化和狀態。本文將詳細介紹如何使用ECharts庫實現一個儀表盤&#xff0c;…