Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按enter键后未运行awk命令_Awk - Fatal编程技术网

按enter键后未运行awk命令

按enter键后未运行awk命令,awk,Awk,我有一个类似于以下内容的文本文件: Question: What is.... ? Answer: Question: What is.... ? Answer: awk '{ for (i = 1; i <= NF; i++){ if ($i ~ /Answer:/) count++ if (count == 2) sub(/Answer:/,"A's",$i) } }1' lab02.txt > tmp &am

我有一个类似于以下内容的文本文件:

Question: What is.... ?

Answer:

Question: What is.... ?

Answer:
awk '{
  for (i = 1; i <= NF; i++){    
    if ($i ~ /Answer:/)
       count++
    if (count == 2)
       sub(/Answer:/,"A's",$i)
  }
 }1' lab02.txt > tmp && mv tmp lab02.txt
我目前正在尝试在第二个
“Answer”
之后插入一些文本。我目前正在使用以下工具:

Question: What is.... ?

Answer:

Question: What is.... ?

Answer:
awk '{
  for (i = 1; i <= NF; i++){    
    if ($i ~ /Answer:/)
       count++
    if (count == 2)
       sub(/Answer:/,"A's",$i)
  }
 }1' lab02.txt > tmp && mv tmp lab02.txt
awk'{

对于(i=1;i),在AWK命令的中间有一个撇号,那就是抛出shell对命令的解析。

它将
}1'
末尾的
'
视为开始一个未完成的新字符串

您需要从shell中转义awk internal


用<代码> > '/c>替换.< /p> 在AWK命令的中间有一个撇号,那就是抛出shell对命令的解析。

它将
}1'
末尾的
'
视为开始一个未完成的新字符串

您需要从shell中转义awk internal


用<代码> > '/c>替换.< /p> 在AWK命令的中间有一个撇号,那就是抛出shell对命令的解析。

它将
}1'
末尾的
'
视为开始一个未完成的新字符串

您需要从shell中转义awk internal


用<代码> > '/c>替换.< /p> 在AWK命令的中间有一个撇号,那就是抛出shell对命令的解析。

它将
}1'
末尾的
'
视为开始一个未完成的新字符串

您需要从shell中转义awk internal


将其替换为
\''

@EtanReisner回答了您的具体问题,但听起来您的脚本应该写成:

$ awk '/Answer:/{ if (++cnt==2) $0 = "A\047s" } 1' file
Question: What is.... ?

Answer:

Question: What is.... ?

A's

@EtanReisner回答了您的具体问题,但听起来您的脚本应该写为:

$ awk '/Answer:/{ if (++cnt==2) $0 = "A\047s" } 1' file
Question: What is.... ?

Answer:

Question: What is.... ?

A's

@EtanReisner回答了您的具体问题,但听起来您的脚本应该写为:

$ awk '/Answer:/{ if (++cnt==2) $0 = "A\047s" } 1' file
Question: What is.... ?

Answer:

Question: What is.... ?

A's

@EtanReisner回答了您的具体问题,但听起来您的脚本应该写为:

$ awk '/Answer:/{ if (++cnt==2) $0 = "A\047s" } 1' file
Question: What is.... ?

Answer:

Question: What is.... ?

A's


1
是一种awk习惯用法。任何真正的模式都会运行默认操作,即打印行。
1
是一种真正的模式。它与上一次结束时的
}
抱在一起是出于一般的懒惰(好的一种)还有空间方面的考虑。我知道有很多看起来非常官方的文档,包括从发明这个工具的人那里来的,它们谈到awk脚本的形式是
pattern{action}
,但是它们都是错的。awk脚本的形式是
condition{action}
,还有一个“pattern”(像
BEGIN
这样的关键字或要与
$0
进行比较的RE)只是一个可能的条件。
1
,或任何其他非零数,在条件上下文中,在awk中是一个真实的条件,就像在C和大多数其他语言中一样。
1
是一个awk习语。任何真实的模式都运行默认操作,即打印行。
1
是一个真实的模式。它与t相拥他之前的结束语是出于一般的懒惰(好的一种)和空间考虑。我知道有很多看起来非常官方的文档,包括从发明这个工具的人那里,他们说awk脚本有形式
模式{action}
,但是他们都错了。awk脚本有形式
条件{action}
和“pattern”(像
BEGIN
这样的关键字或要与
$0
进行比较的RE)只是一个可能的条件。
1
,或任何其他非零数,在条件上下文中,在awk中是一个真实的条件,就像在C和大多数其他语言中一样。
1
是一个awk习语。任何真实的模式都运行默认操作,即打印行。
1
是一个真实的模式。它与t相拥他之前的结束语是出于一般的懒惰(好的一种)和空间考虑。我知道有很多看起来非常官方的文档,包括从发明这个工具的人那里,他们说awk脚本有形式
模式{action}
,但是他们都错了。awk脚本有形式
条件{action}
和“pattern”(像
BEGIN
这样的关键字或要与
$0
进行比较的RE)只是一个可能的条件。
1
,或任何其他非零数,在条件上下文中,在awk中是一个真实的条件,就像在C和大多数其他语言中一样。
1
是一个awk习语。任何真实的模式都运行默认操作,即打印行。
1
是一个真实的模式。它与t相拥他之前的结束语是出于一般的懒惰(好的一种)和空间考虑。我知道有很多看起来非常官方的文档,包括从发明这个工具的人那里,他们说awk脚本有形式
模式{action}
,但是他们都错了。awk脚本有形式
条件{action}
和“pattern”(像
BEGIN
这样的关键字或要与
$0
进行比较的RE)只是一个可能的条件。
1
,或任何其他非零数,在条件上下文中,在awk中是一个真实的条件,就像在C和大多数其他语言中一样。我认为这可能是问题所在。我尝试使用“\”进行转义,但没有成功。谢谢Etan:)@Giri正确。您不能在单引号字符串中转义单引号。单引号不支持任何类型的转义。因此,如果您需要转义,请使用
\047
,例如
打印“there\047s one!”
我想这可能是问题所在。我尝试使用“\”转义,但没有效果。谢谢Etan:)@Giri正确。不能在单引号字符串中转义单引号。单引号不支持任何类型的转义。因此,如果需要转义,请使用
\047
,例如。