shell - 基于过滤器在awk中打印列的子字符串
问题描述
我有一个字符串如下,用逗号分隔
2019-08-3123:10:38,abcd:343:334334,v1-customer,{Ad=299:ADT=1}:{ADpif=10:DDI=299},abd-fed,568:3433
我需要在过滤器“:”上包含所有字符串,但只有第 4 列的子字符串,因此输出应如下所示
2019-08-3123:10:38,abcd:343:334334,v1-customer,{ADpif=10:DDI=299},abd-fed,568:3433
我尝试使用子字符串,但它需要不固定的起始索引,因此无法继续。
谢谢
解决方案
您需要分离列,修剪特定列(第 4 列)并再次将它们连接在一起。AWK 语法有点复杂
echo 'aaaa,b1234,cccc' | awk -F, -v OFS=, '{ $2=substr($2,2,2); print $0 }'
印刷
aaaa,12,cccc
将-F
输入字段分隔符设置为逗号,-v OFS=,
将输出字段分隔符设置为逗号。$0
指整行,而$2
指第二个字段。事实证明,这些$<n>
变量是可变的,因此您可以进行变异$2
,然后使用$0
.
推荐阅读
- python - 组权限的Django TestCase?
- oracle - SQL 错误:ORA-00984:此处不允许列 00984。00000 -“此处不允许列”
- qt - QMenu 右对齐文本
- c# - 将点击事件分配给 DataTemplate 中的按钮
- javascript - 使用Angularjs以编程方式通过名称将表单外的输入发布到表单
- r - ggsave scale 不缩放文本大小
- swift - 我收到一个错误:使用未解析的标识符“UINotificationFeedbackGenerator”
- sas - 多元线性回归、分类和数值自变量
- sql-server-2016 - SQL Server 2019 PolyBase 连接到 SQL Server 2016 - 错误
- python - Python 设置对象属性的交集