首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将现有条目拆分为多行的1行文本更改为

如何将现有条目拆分为多行的1行文本更改为
EN

Unix & Linux用户
提问于 2021-02-11 20:23:20
回答 1查看 73关注 0票数 0

RHEL 7系统我有一个输出文件,看起来像

代码语言:javascript
复制
eDTG=20210210-1540
Sent     74004956
Completed     72185529 (97.54%)
Lost     18119427 (2.46%)
QPS, SERVFAIL QPS     60122 2905
eDTG=20210210-1601

我一直在使用sed将空格更改为选项卡,以便将其保存为csv。现在,我们需要将QPS行拆分为2行,如下所示(注意行之间的数字拆分)

代码语言:javascript
复制
eDTG=20210210-1540
Sent     74004956
Completed     72185529 (97.54%)
Lost     18119427 (2.46%)
QPS     60122
SERVFAIL QPS     2905    
eDTG=20210210-1601

我可以用

awk '/QPS/ {printf "QPS\t%s\nSERVFAIL QPS\t%s",$4,$5}' output.txt

但是gawk -i内嵌是不可用的,所以我在编写另一个文件时遇到了问题。当然,只有当我没有输入; {print}选项时,它才会打印匹配的行。然后,它也写了旧的行。我知道必须有更好的方法来做到这一点,而不是创建第二个文件,然后将其复制回第一个文件名(裁剪QPS,.)。我很感激你能提供的任何帮助。

EN

回答 1

Unix & Linux用户

发布于 2021-02-11 23:24:45

sed可以帮你更多。

代码语言:javascript
复制
sed -E -i 's/^QPS,[[:space:]]+SERVFAIL QPS[[:space:]]+([[:digit:]]+)[[:space:]]([[:digit:]]+$)/QPS\t \1\nSERVFAIL QPS\t \2/' file.txt

-i标志使宪法就位。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/634002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档