Bash 更改awk的格式
下面是我的代码行Bash 更改awk的格式,bash,awk,Bash,Awk,下面是我的代码行 awk 'BEGIN {printf "gnome-terminal"} {printf " --tab -e \"telnet "$4" "$6 " | tee " $1$12"\" -t \"" $1" "$12 "\"" } END {printf "\n"}' temp1.prm >> abc 输出以abc表示: gnome-terminal --tab -e "telnet 10.31.248.104 3007
awk 'BEGIN {printf "gnome-terminal"}
{printf " --tab -e \"telnet "$4" "$6 " | tee " $1$12"\" -t \"" $1" "$12 "\"" }
END {printf "\n"}' temp1.prm >> abc
输出以abc表示:
gnome-terminal --tab -e "telnet 10.31.248.104 3007 | tee dutA1MM1" -t "dutA1 MM1"
我必须得到以下格式:
gnome-terminal --tab -e 'bash -c "telnet 10.31.248.104 3007 | tee script1.log"' -t "dutA1 MM1"
有人能帮忙吗?试试这种双引号格式:
awk "BEGIN {printf \"gnome-terminal\"} {printf \" --tab -e 'bash -c \\\"telnet \"\$4\" \"\$6 \" | tee \" \$1\$12\"\\\"' -t \\\"\" \$1\" \"\$12 \"\\\"\" } END { printf \"\\n\"}" temp1.prm >> abc
使用echo
进行测试时,awk
的参数实际上是
BEGIN {printf "gnome-terminal"} {printf " --tab -e 'bash -c \"telnet "$4" "$6 " | tee " $1$12"\"' -t \"" $1" "$12 "\"" } END { printf "\n"}
尝试此双引号引用格式:
awk "BEGIN {printf \"gnome-terminal\"} {printf \" --tab -e 'bash -c \\\"telnet \"\$4\" \"\$6 \" | tee \" \$1\$12\"\\\"' -t \\\"\" \$1\" \"\$12 \"\\\"\" } END { printf \"\\n\"}" temp1.prm >> abc
使用echo
进行测试时,awk
的参数实际上是
BEGIN {printf "gnome-terminal"} {printf " --tab -e 'bash -c \"telnet "$4" "$6 " | tee " $1$12"\"' -t \"" $1" "$12 "\"" } END { printf "\n"}
不要陷入引用的噩梦。你可以这样保持东西整洁:
BEGIN {
double_quote = "\""
s1 = "gnome-terminal --tab -e 'bash -c "
s2 = double_quote "telnet 10.31.248.104 3007 | tee script1.log" double_quote
s3 = "' -t dutA1 MM1"
printf "%s%s%s\n",s1,s2,s3
}
不要陷入引用的噩梦。你可以这样保持东西整洁:
BEGIN {
double_quote = "\""
s1 = "gnome-terminal --tab -e 'bash -c "
s2 = double_quote "telnet 10.31.248.104 3007 | tee script1.log" double_quote
s3 = "' -t dutA1 MM1"
printf "%s%s%s\n",s1,s2,s3
}
你可能想要这样的东西:
awk '{ printf "gnome-terminal --tab -e \047bash -c \"telnet %s %s | tee script1.log\"\047 -t \"%s %s\"\n", $4, $6, $1, $12 }' file
但是,由于您没有提供示例输入和预期输出,因此这只是一个猜测。您可能需要以下内容:
awk '{ printf "gnome-terminal --tab -e \047bash -c \"telnet %s %s | tee script1.log\"\047 -t \"%s %s\"\n", $4, $6, $1, $12 }' file
但是,由于您没有提供示例输入和预期输出,所以这只是一个猜测。这里更大的目标是什么?如果以后要执行
gnome终端
命令,可能有一种比使用awk生成命令更好的方法。这里更大的目标是什么?如果以后要执行gnome终端
命令,可能有一种比使用awk生成命令更好的方法。@user2796211我以前确实犯过错误。请再试一次。另外,不要使用第二个。这只是一种解释,真奇怪。一个类似这样的伪命令:awk“BEGIN{printf\'gnome terminal\'}{printf\'--tab-e'bash-c\\\'telnet\'\$4\'\'\'\$6\'\$12\'\\\'''-t\\\$1\'\'\$12\\'\\\'\'\'\'\'\'\'}END{printf\\\\\\\'\\'\'\'\'\'\'\\\'\'\\\\\''\\\\'''''\\\\\\''\\\\\\\\\\。请再试一次。另外,不要使用第二个。这只是一种解释,真奇怪。类似这样的伪命令:awk“BEGIN{printf\'gnome terminal\'}{printf\'--tab-e'bash-c\\\\'telnet\'\$4\'\'\'\$6\'\$12\\'\\\''-t\\\$1\'\'\$12\\\\'\'\'\'\'\'\'\'}END{printf\\\\\'\\\\'''\\'<