gpt4 book ai didi

linux - 在 Awk split(for 循环)中运行 Sed 命令

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:16 24 4
gpt4 key购买 nike

请原谅我的英语。

我是 shell 脚本的新手,在使用 awk 拆分字符串后,我正在尝试为 for 循环内的每个元素运行 sed 替换命令

# !/bin/sh
SCRIPT_DIR=`pwd`
TEXT_FIELD=$SCRIPT_DIR/Field/textField

FIELDS="code-text name-text"
echo "$FIELD" | awk '{len = split($0,t," ")
for (i=1; i<=len; i++) {
"sed -i 's/inputPlaceholder/t[i]/g' $TEXT_FIELD"
} }'

当我运行它时:$ sh code_sample.sh它不会抛出错误,但也不起作用。

你能帮帮我吗?非常感谢。


编辑

我的目标是将code-text name-text读入array[1] = "code-text", array[2] = "name -文本”

然后 for 循环将逐一读取并将每一项替换为给定文件中的 inputPlaceholder 字符串。

例子:

输入:FILED="代码-文本名称-文本"

输出(在文件中):text->create("inputPlaceholder") 变成 text->create("code-text") 并保存为 code.txt 并使用相同的逻辑将 name-text 保存到 name.txt .

最佳答案

您可以通过 system("sed ....") 调用来实现,但这听起来很糟糕。例如,您必须确保替换文本可以安全地用于 sed 表达式,否则某些输入的命令会失败。

此外,您还必须转义引号字符,因为通过编写 sed -i '... 您将打破 awk 文本引号。

如果你真的像这样进行文本处理,我会推荐一些比 sh 更高级的东西。 Python、Perl、Ruby 和许多其他语言都可以很好地完成这项工作。

如果你想要一些具体的例子,你必须说出你希望脚本做什么 - 当前的例子严重损坏,我不确定预期的输入/输出/操作是什么。

关于linux - 在 Awk split(for 循环)中运行 Sed 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37950808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com