【问题标题】:how to replace string after field separater(=) in file and save into same file using awk如何在文件中的字段分隔符(=)之后替换字符串并使用awk保存到同一个文件中
【发布时间】:2015-10-17 16:12:04
【问题描述】:
cat file.csv | awk -F '=' '{gsub(/n/,"1",$2)};{print}' 

用数字替换字符串时,= 分隔符消失 文件:

a=a+b
c=n+m
o/p:
a=a+b
c 1+m

但我想要o/p喜欢

a=a+b
c=1+m

【问题讨论】:

    标签: shell


    【解决方案1】:

    把你的脚本改成这样:

    awk -F '=' -v OFS='=' '{gsub(/n/,"1",$2); print}' file.csv
    

    默认的输出字段分隔符是,因此如果 awk 接触到记录,它将从 = 更改它,除非您另外指定。

    我结合了你的两个动作块;没有必要有两个单独的。

    【讨论】:

    • 我的脚本被更改了,但是这行在命令行中工作,但在脚本中不起作用
    • 实际上我有两个文件 file1=a,1 n,1 和 file2=a=a+b c=n+m ,我必须在 file2 中更改 file1 的对应值
    • 先问一件事,然后在解决了原来的问题后改变你的需求,这不是一个好主意。你应该自己解决这个问题并做一些研究。如果您遇到特定的问题,那么也许您可以问另一个问题。作为一般建议,不要将代码放入 cmets;完全看不懂。
    • 在循环复制到文件时,文件没有改变
    • 复制不是问题 awk -F '=' -v OFS='=' '{gsub(/$var/,"$value",$2); print}' file.csv ,而不是字符串和值我传递变量,但它不工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 2015-07-31
    • 2016-11-06
    • 2019-01-01
    • 2019-04-05
    • 1970-01-01
    • 2017-03-13
    相关资源
    最近更新 更多