/{printf "%s ",$0}/\/>/{print ""}' out.txt > temp.txt ca-6ren">
gpt4 book ai didi

linux - awk 中的用户定义变量

转载 作者:太空宇宙 更新时间:2023-11-04 09:02:37 25 4
gpt4 key购买 nike

您好,我有一个包含以下内容的脚本

line="17"

awk '/$line/,/\/>/{printf "%s ",$0}/\/>/{print ""}' out.txt > temp.txt

cat temp.txt

它没有显示任何输出,但下面的查询给出了我想要的结果

awk '/"17"/,/\/>/{printf "%s ",$0}/\/>/{print ""}' out.txt > temp.txt

我以如下不同的方式使用了 awk inside 脚本,但没有用

awk -v xyz="$line" '/xyz/,/\/>/{printf "%s ",$0}/\/>/{print ""}' out.txt > temp.txt
awk "/$line/,/\/>/{printf '%s ',$0}/\/>/{print ''}" out.txt > temp.txt

有什么方法可以实现与 $line 的完全匹配(如 grep -w $line )..

非常感谢任何帮助。

最佳答案

Bash 不会替换单引号字符串中的变量。

检查您在做什么的任何简单方法是:

echo '/$line/,/\/>/{printf "%s ",$0}/\/>/{print ""}'

有几种方法可以实现你想要的,这个看起来很可读:

awk '/"'$line'"/,/\/>/{printf "%s ",$0}/\/>/{print ""}'

关于linux - awk 中的用户定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18244376/

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