【问题标题】:How to replace all occurrence of a symbol with awk如何用awk替换所有出现的符号
【发布时间】:2020-10-29 21:29:45
【问题描述】:

从 cmd (awk 'some expression') 我得到了格式的结果

Key:(white_space)Value
Key:(white_space)Value
...

如何将结果操作为格式:

Key=Value

我需要这个,因为我想将信息放入 key=value 的 .properties 文件格式

换句话说,我需要将: 替换为= 并删除空格。

awk中有没有可以实现这个的命令?

【问题讨论】:

    标签: bash shell unix awk sh


    【解决方案1】:

    您要求awk,而sed 提供同样简单的解决方案。但是,awk 也使 sub 变得微不足道:

    awk '{ sub(/:[ \t]*/,"=") }1'
    

    示例

    $ echo "Key:       Value" | awk '{ sub(/:[ \t]*/,"=") }1'
    Key=Value
    

    【讨论】:

    • 是的,它正在工作它也删除了空格。你是对的,这个问题是关于 awk 的,所以从 SO 的角度来看,接受你的答案会更准确。谢谢你的帮助!
    【解决方案2】:

    另一个awk 方法。

    awk -F'[: ]' '{print $1 "=" $NF}' file.txt 
    

    【讨论】:

    • 如果Value 包含任何冒号或空格,例如Name: Joe ShmoRatio: 5:1.
    猜你喜欢
    • 2017-06-21
    • 1970-01-01
    • 2018-01-20
    • 2021-12-20
    • 2011-02-23
    • 2022-01-19
    相关资源
    最近更新 更多