使用sed或awk替换引号中的文本字符串?

使用sed或awk替换引号中的文本字符串?,awk,sed,Awk,Sed,sed和g/awk似乎都非常强大。当我需要处理数据并与语法斗争时,我总是使用这两种方法提交答案。就我个人而言,awk的语法对我来说更容易掌握(这是一种常见的偏好吗?) 我想花几天的时间来研究大量使用其中一个或另一个的例子,是否应该特别关注其中一个而不是另一个?在能力方面,一方是否优于另一方?现在我的问题是 我有一个.php文件,它被读取并呈现为json文件。看起来是这样的: <?php $selectedSystemStateResults = ["Bird", "Cats", "Cows

sed和g/awk似乎都非常强大。当我需要处理数据并与语法斗争时,我总是使用这两种方法提交答案。就我个人而言,awk的语法对我来说更容易掌握(这是一种常见的偏好吗?)

我想花几天的时间来研究大量使用其中一个或另一个的例子,是否应该特别关注其中一个而不是另一个?在能力方面,一方是否优于另一方?现在我的问题是

我有一个.php文件,它被读取并呈现为json文件。看起来是这样的:

<?php
$selectedSystemStateResults = ["Bird", "Cats", "Cows", "Dog", 
"Goats", "Monkey", "Sheep"];

忽略,过度思考

我只是修改了php文件,以便现在可以替换行

<?php
$selectedSystemStateResults = [
"Bird", 
"Cats", 
"Cows", 
"Dog", 
"Goats", 
"Monkey", 
"Penguin"]
;

您是想更改PHP程序还是JSON输出?前者一般来说是不平凡的。对于第二种情况,awk和sed都不合适。使用
jq
或设计用于处理JSON的类似工具。JSON文件是用另一个脚本创建的。我正在linux cli中运行一个命令来获取服务器统计数据。其中一些统计数据需要插入到上面的php文件(即完整的文件,信不信由你)中,然后实际的脚本将该文件处理成json文件,通过服务器发送的事件和web套接字连接到web。恕我直言,即使我将直接输出到json,我想问题也是一样的,不是吗?如何在引号之间插入?目前我正在尝试使用grep,但我认为它不是适合这项工作的工具。sed或awk是否可以将“sometext”作为一个字段处理,将“othertext”作为另一个字段处理?它可以,就像sed
一样,但需要指出的是,这两种工具都是错误的,不适合修改json的工作,也没有任何方法验证结果是否继续符合json。这就是json操作工具(如
jq
)的用途。请在shich工具上回答您的问题,sed用于对简单字符串执行
s/old/new
,grep用于执行
g/re/p
,awk用于其他所有文本操作。