Linux 多種方式實現行轉列

目錄

  • 一. 前提
  • 二. `xargs` 實現行轉列
  • 三. `paste` 實現行轉列
  • 四. `sed` 實現行轉列


一. 前提

?之前在這下面篇文章中使用sed命令實現了行專列,本篇文章再介紹幾種更加簡單的方式。
Linux sed案例

👉 20231126-2.log

110120 SPLREQUEST 內容1 AAA memberID=1 eventController=event1
110120 SPLEND ExecTime=200 ResultCode=200
123456 SPLEND ExecTime=300 ResultCode=200123456 SPLREQUEST 內容2 BBB memberID=2 eventController=event2
123444 SPLREQUEST 內容3 CCC memberID=3 eventController=
123434 SPLREQUEST 內容4 DDD memberID=  eventController=event4123444 SPLEND ExecTime=200 ResultCode=200
123434 SPLEND ExecTime=400 ResultCode=200
345345 SPLEND ExecTime=500 ResultCode=200
345345 SPLREQUEST 內容5 EEE memberID=5 eventController=event5
674545 SPLREQUEST 內容6 FFF memberID=6 eventController=event6674545 SPLEND ExecTime=400 ResultCode=200

?先匯總數據

apluser@FengYeHong-HP:~$ join <(grep SPLREQUEST ./20231126-2.log | sort) <(grep SPLEND ./20231126-2.log | sort) > all.txt
apluser@FengYeHong-HP:~$
apluser@FengYeHong-HP:~$ cat all.txt
110120 SPLREQUEST 內容1 AAA memberID=1 eventController=event1 SPLEND ExecTime=200 ResultCode=200
123434 SPLREQUEST 內容4 DDD memberID= eventController=event4 SPLEND ExecTime=400 ResultCode=200
123444 SPLREQUEST 內容3 CCC memberID=3 eventController= SPLEND ExecTime=200 ResultCode=200
123456 SPLREQUEST 內容2 BBB memberID=2 eventController=event2 SPLEND ExecTime=300 ResultCode=200
345345 SPLREQUEST 內容5 EEE memberID=5 eventController=event5 SPLEND ExecTime=500 ResultCode=200
674545 SPLREQUEST 內容6 FFF memberID=6 eventController=event6 SPLEND ExecTime=400 ResultCode=200

二. xargs 實現行轉列

?Linux xargs命令

  • xargs -L 4:每4行轉為列
  • 用法更加簡潔
apluser@FengYeHong-HP:~$ grep -o -a -e "^\S*" -e "eventController=\S*" -e "memberID=\S*" -e "ExecTime=\S*" all.txt | \
xargs -L 4
110120 memberID=1 eventController=event1 ExecTime=200
123434 memberID= eventController=event4 ExecTime=400
123444 memberID=3 eventController= ExecTime=200
123456 memberID=2 eventController=event2 ExecTime=300
345345 memberID=5 eventController=event5 ExecTime=500
674545 memberID=6 eventController=event6 ExecTime=400

三. paste 實現行轉列

?Linux paste命令 實現行轉列

  • $(yes - | head -n 4):動態添加-
  • paste -d "," $(yes - | head -n 4)paste -d "," - - - -的作用相同
apluser@FengYeHong-HP:~$ grep -o -a -e "^\S*" -e "eventController=\S*" -e "memberID=\S*" -e "ExecTime=\S*" all.txt | \
paste -d "," $(yes - | head -n 4)
110120,memberID=1,eventController=event1,ExecTime=200
123434,memberID=,eventController=event4,ExecTime=400
123444,memberID=3,eventController=,ExecTime=200
123456,memberID=2,eventController=event2,ExecTime=300
345345,memberID=5,eventController=event5,ExecTime=500
674545,memberID=6,eventController=event6,ExecTime=400

四. sed 實現行轉列

?sed用法整理文章

  • Linux sed案例
  • Linux sed命令
apluser@FengYeHong-HP:~$ grep -o -a -e "^\S*" -e "eventController=\S*" -e "memberID=\S*" -e "ExecTime=\S*" all.txt | \
sed ':loop; N; $!b loop; s/\n\([emE]\)/ \1/g'
110120 memberID=1 eventController=event1 ExecTime=200
123434 memberID= eventController=event4 ExecTime=400
123444 memberID=3 eventController= ExecTime=200
123456 memberID=2 eventController=event2 ExecTime=300
345345 memberID=5 eventController=event5 ExecTime=500
674545 memberID=6 eventController=event6 ExecTime=400

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

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

相關文章

Hadoop HDFS存儲機制與塊大小選擇權衡

一、HDFS塊存儲機制核心原理 1.1 邏輯塊 vs 物理存儲 HDFS中的 塊大小(block size) 是一個邏輯概念&#xff0c;而非物理預分配&#xff1a; #mermaid-svg-GzNjegjSgYrnlcme {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mer…

Unity Addressable使用之AddressableAssetSettings

AddressableAssetSettings 是 Unity Addressable Assets System 的核心配置文件 配置 Manage Groups 用來打開Addressables Groups窗口 Profiles配置 Profile In Use&#xff1a;可以在這選擇使用的是哪一套配置文件Manage Profiles&#xff1a;點擊它會打開Addressables Gr…

從“詢”到“單”的智能躍遷:工業品電商復雜交易流程引擎的架構之道

當傳統企業客戶在“詢盤-報價-議價-審批-合同-下單-履約”的復雜迷宮中艱難穿行&#xff0c;反復溝通、層層審批、定制條款、手工錄入……每一步都暗藏延遲與差錯的風險&#xff0c;工業品電商平臺也承受著轉化率低、運營成本高、客戶滿意度下滑的陣痛。流程冗長、定制化依賴人…

【軟考高級系統架構論文】論模型驅動架構設計方法及其應用

論文真題 模型驅動架構設計是一種用于應用系統開發的軟件設計方法,以模型構造、模型轉換和精化為核心,提供了一套軟件設計的指導規范。在模型驅動架構環境下,通過創建出機器可讀和高度抽象的模型實現對不同問題域的描述,這些模型獨立于實現技術,以標準化的方式儲存,利用…

【入門】【例18.2】 孔融讓梨

| 時間限制&#xff1a;C/C 1000MS&#xff0c;其他語言 2000MS 內存限制&#xff1a;C/C 64MB&#xff0c;其他語言 128MB 難度&#xff1a;中等 分數&#xff1a;100 OI排行榜得分&#xff1a;12(0.1分數2難度) 出題人&#xff1a;root | 描述 孔融小時候聰明好學&#xff0…

【nature review】原子尺度上光與物質的相互作用

2021 年 6 月,馬普固態研究所 Rico Gutzler 等人在《Nature Reviews Physics》期刊發表了題為《Light–matter interaction at atomic scales》的文章,基于掃描隧道顯微鏡(STM)與光子學結合的方法,研究了光與物質在原子尺度上的相互作用,實驗和仿真結果表明光可通過多種機…

7.3.3_1紅黑樹的定義和性質

知識總覽&#xff1a; 為什么要發明紅黑樹&#xff1a; 二叉排序樹BST 紅黑樹RBT的查找、插入和刪除效率基本和AVL平衡二叉樹的相同&#xff0c;但是平衡二叉樹在插入和刪除節點操作時容易被破壞平衡&#xff0c;所以需要消耗大量時間重新調整樹的形態(主要時間用在計算平衡因…

微處理器原理與應用篇---馮諾依曼體系結構

馮諾依曼體系結構&#xff1a;計算機的基礎設計范式 一、馮諾依曼體系結構的起源與定義 提出背景&#xff1a; 1945 年&#xff0c;匈牙利數學家約翰?馮?諾依曼&#xff08;John von Neumann&#xff09;在《EDVAC 報告書的第一份草案》中提出該架構&#xff0c;為現代計算…

vue3 + TypeScript +Element Plus 輸入框回車事件 @keydown.enter

在 Vue 3 TypeScript Element Plus 的環境下&#xff0c;keyup.enter.native 和 keydown.enter 在 el-input 組件上的區別主要在于 事件觸發時機 和 Vue 3 的事件處理機制。以下是詳細對比&#xff1a; 1. keydown.enter&#xff08;推薦&#xff09; 觸發時機&#xff1a;當…

android gradle的優化

在setting.gradle.kts配置 google()maven("https://maven.aliyun.com/repository/google")// 官方 Maven Central&#xff0c;最通用mavenCentral()// 特殊倉庫&#xff08;4thline&#xff0c;Cling 用&#xff09;maven {url uri("http://4thline.org/m2&q…

jmeter工具簡單認識

2025最新Jmeter接口測試從入門到精通&#xff08;全套項目實戰教程&#xff09; 一、JMeter 介紹 Apache JMeter是100%純JAVA桌面應用程序&#xff0c;被設計為用于測試客戶端/服務端結構的軟件(例如web應用程序)。它可以用來測試靜態和動態資源的性能&#xff0c;例如&#xf…

Rail 分析的實現思路(python)(1)

本文適用于 Rail 0.1 版本. 工作:輸入Rial文件的路徑,識別詞元,輸出實例列表. 是一邊寫代碼一邊寫文章的,所以有時候改了原本的代碼不一定會說.以思路為中心. Rail是一種信息分布與細節構成的表示語言。詳見參考文檔. 關于本文的分析對象&#xff0c;參考邏輯行的類型. 從源文…

【JAVA】數組的使用

文章目錄 前言一、數組的基本概念1.1 數組的創建和初始化1.2 數組的基本使用 二、數組是引用類型2.1 初始JVM的內存分布JVM內存劃分&#xff08;按功能分區&#xff09; 2.2 基本類型變量與引用類型變量的區別2.3 再談引用變量2.4 認識null 三、數組作為函數的參數和返回值四、…

Python圖像處理與計算機視覺:OpenCV實戰指南

引言 在當今數字化時代&#xff0c;圖像處理和計算機視覺技術已經滲透到我們生活的方方面面&#xff0c;從智能手機的人臉識別解鎖&#xff0c;到自動駕駛汽車的路況感知&#xff0c;再到醫療影像輔助診斷系統。作為這一領域最流行的開源庫之一&#xff0c;OpenCV (Open Sourc…

OCCT基礎類庫介紹:Modeling Algorithm - Features

Features 特征 This library contained in BRepFeat package is necessary for creation and manipulation of form and mechanical features that go beyond the classical boundary representation of shapes. In that sense, BRepFeat is an extension of BRepBuilderAPI …

【前端AI實踐】DeepSeek:開源大模型的使用讓開發過程不再抓頭發

有時候你可能正對著屏幕發呆&#xff0c;不知道怎么下手一個 Vue 的流式請求功能。這時候&#xff0c;DeepSeek 就像是你的“編程外掛”&#xff0c;幫你把模糊的需求變成清晰的代碼。 下面我們就以幾個常見的開發場景為例&#xff0c;看看 DeepSeek 能幫我們做點啥。 解答技…

SAP S/4HANA 的“Smart Core”:在現實與理想之間實現敏捷擴展

摘要&#xff1a; 在 SAP S/4HANA 的實施過程中&#xff0c;“Clean Core”&#xff08;干凈核心&#xff09;已成為熱門話題&#xff0c;指的是通過簡化和優化系統架構&#xff0c;減少技術債務、提升性能并增強可升級性。盡管這是 SAP 推動云轉型的核心理念之一&#xff0c;…

Python 量化金融與算法交易實戰指南

https://www.python.org/static/community_logos/python-logo-master-v3-TM.png 金融數據獲取與處理 使用yfinance獲取市場數據 python 復制 下載 import yfinance as yf import pandas as pd# 下載蘋果公司股票數據 aapl yf.Ticker("AAPL") hist aapl.histo…

【StarRocks系列】join查詢優化

目錄 Join 類型 和 Join 策略 1. Join 類型&#xff08;Join Type&#xff09; 2. Join 策略&#xff08;Join Strategy&#xff09; 分布式 Join 策略 (核心) 1. Colocate Join (本地 Join - 最優): 2. Bucket Shuffle Join: 3. Broadcast Join (復制廣播): 4. Shuffl…

【論文解讀】ZeroSearch: 零API成本激活大模型Web搜索

1st author: Hao Sun 孫浩 - PhD Candidate Peking University - Homepage paper: [2505.04588] ZeroSearch: Incentivize the Search Capability of LLMs without Searching code: Alibaba-NLP/ZeroSearch: ZeroSearch: Incentivize the Search Capability of LLMs without…