gpt4 book ai didi

unix - Awk: how to print the field separator with your columns(字段分隔符也是一个正则表达式)

转载 作者:行者123 更新时间:2023-12-01 13:35:01 24 4
gpt4 key购买 nike

我有一个文件看起来像

3 5 t27s60  
4 8 s30s40
2 2 t80t10
6 4 s80t10

我想生成一个类似

的文件
3 5 t27 s60  
4 8 s30 s40
2 2 t80 t10
6 4 s80 t10

所以我会将字段分隔符指定为 s 或 t,但我想在输出中保留这些字符。

最佳答案

一个快速的 awk 单行代码:

awk '{gsub(/[st]/," &",$0)}1' input.txt

输出:

3 5  t27 s60  
4 8 s30 s40
2 2 t80 t10
6 4 s80 t10

这里,我们使用了gsub命令中&的特殊含义:它代表machted表达式。因此,gsub(/[st]/,"&",$0) 在每个“s”或“t”之前添加一个空格

如果重复的空白是一个问题:

awk '{gsub(/[st]/," &",$0);gsub(/[ ]+/," ",$0)}1' input.txt

给出:

3 5 t27 s60 
4 8 s30 s40
2 2 t80 t10
6 4 s80 t10

关于unix - Awk: how to print the field separator with your columns(字段分隔符也是一个正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37596920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com