Awk 是否可以在中使用sed?

Awk 是否可以在中使用sed?,awk,sed,Awk,Sed,可以在bash中使用sed吗? 例如: 我认为这是错误的,因为sed的每一个周期都想改变每一行。我的意思是,在中使用sed是不可能的 file.yml: catalog/view/css/animate.css/3.1.1/animate.min.css: 1494509091 catalog/view/fonts/cinzel/fonts.css: 1494509091 catalog/view/fonts/garamondcondot-book/fonts.css: 1494509092 c

可以在bash中使用sed吗? 例如:

我认为这是错误的,因为sed的每一个周期都想改变每一行。我的意思是,在中使用sed是不可能的

file.yml:

catalog/view/css/animate.css/3.1.1/animate.min.css: 1494509091
catalog/view/fonts/cinzel/fonts.css: 1494509091
catalog/view/fonts/garamondcondot-book/fonts.css: 1494509092
catalog/view/fonts/gotham-narrow/fonts.css: 1494509092
    catalog/view/fonts/gotham/fonts.css: 1494509092
    catalog/view/fonts/greatvibes/fonts.css: 1494509092
    catalog/view/fonts/indie-flower/fonts.css: 1494509092

循环的每次迭代都将读取
文件.yaml
,并将
文件.yaml
的更新版本发送给stdout,其中文本字符串
$key
的所有出现都将被输出中的文本字符串
$new
替换(因为您将参数包装到单引号之间的
sed
file.yaml
本身永远不会改变。您最终会得到一堆写入stdout的
file.yaml
副本)

因此,从字面上回答你的问题:在循环中使用
sed
是否有可能?当然有。没有法律禁止它。你真的以合理的方式使用它吗?我不知道,因为我不知道你想要什么(这也不是问题的一部分)


更新:通过合并@Socowi给出的注释修复了答案。

您的意思是什么
sed想要更改每一行
?是否所有内容都打印到控制台?如果您没有告诉它编辑文件(您没有这样做),这是正常行为张贴。是的,文件打印的行数相同。@TDex:只是好奇一下:
var2
的目的是什么?你从来没有使用过它。你的代码有足够多的错误,你应该扔掉它,重新开始。复制/粘贴它,以获得关于一些基本问题的报告。如果你想得到帮助,不管你想做什么,你都可以尝试g以正确的方式,然后发布一个新问题,并包含一个简洁、可测试的示例输入和预期输出。请参阅。作为其中一个问题的示例,shellcheck不会告诉您-您的
list()
函数,
cat file.yml | awk'{print$1}的内容“|cut-d”:-f 1 | tail-n+2
,可以写成
awk'NR>1{sub(/:.*/,”);print$1}file.yml
。另一方面,您的sed命令将与任何包含regexp元字符的文件名(如
)存在错误匹配。此外,循环的
不是如何读取命令的输出,请参见。我可以继续。。。“
如果相应的$key的所有出现都被$new
替换”,您可能需要指出,
$key
是这里的文本字符串
'$key'
,而不是变量名
key
的值
“$key”
。对
$new
,也一样。
catalog/view/css/animate.css/3.1.1/animate.min.css: 1494509091
catalog/view/fonts/cinzel/fonts.css: 1494509091
catalog/view/fonts/garamondcondot-book/fonts.css: 1494509092
catalog/view/fonts/gotham-narrow/fonts.css: 1494509092
    catalog/view/fonts/gotham/fonts.css: 1494509092
    catalog/view/fonts/greatvibes/fonts.css: 1494509092
    catalog/view/fonts/indie-flower/fonts.css: 1494509092