gpt4 book ai didi

string - 使用 awk 或 send 查找字符串并在它之前插入另一个复杂字符串

转载 作者:行者123 更新时间:2023-12-04 05:20:55 25 4
gpt4 key购买 nike

好的,我被锁定在尝试根据搜索字符串插入一行的情况。我很熟悉使用单个作品或简单的东西来执行 AWK 和 SED。

我想如何插入一个包含单引号和括号的字符串
例如
这会起作用

     awk '/('Backup/ {print "NEWLINE"  } {print}' filename.sh 

这也会
    sed -e '/\(\'backup/i\
newline ' filename.sh

而不是换行工作 - 我想要这个“('Drop the no good white.cap;'),”

包含在“和”中的所有内容

最佳答案

你想做的事与awk无关或 sed .例如,请参阅:

print " '\'' data_between_two_single_quotes '\'' "

第一 '人物关门 ' shell 字符串文字。 shell 文字不支持为此使用反斜杠转义。序列 '\''诀窍:它关闭单引号文字,指定引号字符(使用单引号文字之外支持的转义符),然后重新打开一个新的单引号文字。您可以将其视为获取单引号的四字符转义序列。

那么,您的 awk命令变为:
awk '/\('\''Backup/ {print " ('\''Drop the no good white.cap ;'\'' ) , " } { print }' filename.sh 

还有您的 sed命令变为:
sed -e '/\('\''Backup/i\
('\''Drop the no good white.cap ;'\'' ) , ' filename.sh

编辑:
for i in *; do awk -v database="$DB" -v table="$TB" 'BEGIN { print "header" } /backup/ { print " ('\''DROP TABLE " database "." table ";'\'' ) , " }1' "$i" > "${i}.new"; done

说明:

使用 shell for 循环遍历目录中的所有文件循环。使用 BEGIN 为文件添加标题块。查找单词 backup并打印一行包含 shell 变量 DBTB . ... }1'awk脚本默认启用打印。它是 { print } 的简写.哈。

关于string - 使用 awk 或 send 查找字符串并在它之前插入另一个复杂字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13696674/

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