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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…