awk:非终止字符串
我正在尝试运行下面的命令,它给了我一个错误。关于如何修复的想法?我希望这是一个单行命令,而不是脚本awk:非终止字符串,awk,terminal,Awk,Terminal,我正在尝试运行下面的命令,它给了我一个错误。关于如何修复的想法?我希望这是一个单行命令,而不是脚本 grep "id\": \"http://room.event.assist.com/event/room/event/" failed_events.txt | head -n1217 | awk -F/ ' { print $7 } ' | awk -F\" ' { print "url \= \"http\:\/\/room\.event\.assist\.com\/event\/roo
grep "id\": \"http://room.event.assist.com/event/room/event/" failed_events.txt |
head -n1217 |
awk -F/ ' { print $7 } ' |
awk -F\" ' { print "url \= \"http\:\/\/room\.event\.assist\.com\/event\/room\/event\/'{ print $1 }'\?schema\=1\.3\.0\&form\=json\&pretty\=true\&token\=582EVTY78-03iBkTAf0JAhwOBx\&account\=room_event\"" } '
awk: non-terminated string url = "ht... at source line 1
context is
>>> <<<
awk: giving up
source line number 2
我希望将上面的ID放入一个字符串中,如下所示:
“url=”string…“ID”string“看看你在上一个awk中有什么:
awk -F\"
' #single start here
{ print " #double starts for print, no ends
url \= \"http\:\/\/room\.event\.assist\.com\/event\/room\/event\/
' #single ends here???
{ print $1 }'..... #single again??? ...
(rest codes)
你想打印出准确的
{print}
吗?我不这么认为。你为什么要嵌套print
?看看你在上一个awk中有什么:
awk -F\"
' #single start here
{ print " #double starts for print, no ends
url \= \"http\:\/\/room\.event\.assist\.com\/event\/room\/event\/
' #single ends here???
{ print $1 }'..... #single again??? ...
(rest codes)
你想打印出准确的
{print}
吗?我不这么认为。为什么要嵌套print
?管道的大多数元素都可以在awk内部表达
我无法确切地告诉您要对最后一个awk脚本执行什么操作,但这里有几点:
- 你的“grep”实际上只是在寻找一串文本,而不是一个 regexp
- 如果使用awk,您可以节省时间并简化事情
函数而不是RE。输出格式几乎总是 最好使用printf()进行处理index()
awk -F/ '
BEGIN {
string="id\": \"http://room.event.assist.com/event/room/event/";
fmt="url = http://example.com/event/room/event/%s?schema=whatever\n";
}
count == 1217 { nextfile; }
index($0, string) {
split($7, a, "\"");
printf(fmt, a[0]);
count++;
}' failed_events.txt
如果愿意,您可以使用awk的
-v
选项从调用此awk脚本的shell脚本传入字符串
变量。或者如果这是一个独立的awk脚本(使用#!
shebang),您可以使用ARGV
引用命令行选项,管道的大多数元素都可以在awk中表达
我无法确切地告诉您要对最后一个awk脚本执行什么操作,但这里有几点:
- 你的“grep”实际上只是在寻找一串文本,而不是一个 regexp
- 如果使用awk,您可以节省时间并简化事情
函数而不是RE。输出格式几乎总是 最好使用printf()进行处理index()
awk -F/ '
BEGIN {
string="id\": \"http://room.event.assist.com/event/room/event/";
fmt="url = http://example.com/event/room/event/%s?schema=whatever\n";
}
count == 1217 { nextfile; }
index($0, string) {
split($7, a, "\"");
printf(fmt, a[0]);
count++;
}' failed_events.txt
如果愿意,您可以使用awk的
-v
选项从调用此awk脚本的shell脚本传入字符串
变量。或者如果这是一个独立的awk脚本(使用#!
shebang),您可以使用ARGV
参考命令行选项。您能给我们一些示例输入和预期输出吗?我们可以修复您的语法错误(看起来像是乱引号),我强烈怀疑有更好的方法来实现您的目标。谢谢,更新了我的原始问题..您能给我们一些示例输入和预期输出吗?虽然我们可以修复您的语法错误(看起来像乱引号),我强烈怀疑有更好的方法来实现您的目标。谢谢,更新了我的原始问题。@它不会那样工作。无论如何,您的问题为什么非终止字符串
得到了回答。您最好看看@ghoti的评论。@它不会那样工作。无论如何,您的问题为什么非终止字符串
是answered。你最好看看@ghoti的评论。我想把它作为一个命令而不是一个脚本来做,这不可能吗?我想把它作为一个命令而不是脚本来做,这不可能吗?