Regex 如何在论文之间读取提取数据并将其打印到另一个文件
我正在寻找一种从多个括号中提取特定文本并希望存储在文件中的方法。内容如下所示Regex 如何在论文之间读取提取数据并将其打印到另一个文件,regex,bash,perl,awk,sed,Regex,Bash,Perl,Awk,Sed,我正在寻找一种从多个括号中提取特定文本并希望存储在文件中的方法。内容如下所示 {& Vendor CGIO} 1100 650} {{& IP_OWNER cjohn} 1100 550} {{& Product pk_sgmii_serdes_sx_ico_idac_sw_by2} 1100 450} {{& DATE_TIME Aug 29 03:27:36 2016} 1100 750} {{& Version 1.1} 1100 350} {{&a
{& Vendor CGIO} 1100 650} {{& IP_OWNER cjohn} 1100 550} {{& Product pk_sgmii_serdes_sx_ico_idac_sw_by2} 1100 450} {{& DATE_TIME Aug 29 03:27:36 2016} 1100 750} {{& Version 1.1} 1100 350} {{& PDK_RELEASE_VERSION V1} 1100 850}
我想提取以下内容并打印到一个文件中
& Vendor CGIO
& IP_OWNER cjohn
& Product pk_sgmii_serdes_sx_ico_idac_sw_by2
& Version 1.1
我尝试使用cut命令,但提取所有变量并不是很有用
cat Tags_file | cut -d '{' -f2 | cut -d '}' -f1
使用
grep-oP
和基于lookaround的正则表达式:
grep -oP '(?<={)[^{}]+(?=})' file
& Vendor CGIO
& IP_OWNER cjohn
& Product pk_sgmii_serdes_sx_ico_idac_sw_by2
& DATE_TIME Aug 29 03:27:36 2016
& Version 1.1
& PDK_RELEASE_VERSION V1
grep-oP'(?使用grep-oP
和基于lookaround的正则表达式:
grep -oP '(?<={)[^{}]+(?=})' file
& Vendor CGIO
& IP_OWNER cjohn
& Product pk_sgmii_serdes_sx_ico_idac_sw_by2
& DATE_TIME Aug 29 03:27:36 2016
& Version 1.1
& PDK_RELEASE_VERSION V1
grep-oP'(?可能而循环也将打印输出:
my $str = '{& Vendor CGIO} 1100 650} {{& IP_OWNER cjohn} 1100 550} {{& Product pk_sgmii_serdes_sx_ico_idac_sw_by2} 1100 450} {{& DATE_TIME Aug 29 03:27:36 2016} 1100 750} {{& Version 1.1} 1100 350} {{& PDK_RELEASE_VERSION V1} 1100 850}';
print "$1\n" while($str=~m/\{([^\{\}]*)\}/g);
可能while
loop也会打印输出:
my $str = '{& Vendor CGIO} 1100 650} {{& IP_OWNER cjohn} 1100 550} {{& Product pk_sgmii_serdes_sx_ico_idac_sw_by2} 1100 450} {{& DATE_TIME Aug 29 03:27:36 2016} 1100 750} {{& Version 1.1} 1100 350} {{& PDK_RELEASE_VERSION V1} 1100 850}';
print "$1\n" while($str=~m/\{([^\{\}]*)\}/g);
试一试
正是您需要的。(如您的示例所示,排除了DATE\u TIME
和PDK
)
试试看
正是您需要的。(如您的示例所示,排除了DATE\u TIME
和PDK
)
首先,将所有{&
更改为换行符,
然后去除剩余的噪声(请注意,我还删除了开头的&
):
首先,将所有{&
更改为换行符,
,然后去除剩余的噪声(注意,我还删除了初始的&
):
$ echo "{& Vendor CGIO} 1100 650} {{& IP_OWNER cjohn} 1100 550} {{& Product pk_sgmii_serdes_sx_ico_idac_sw_by2} 1100 450} {{& DATE_TIME Aug 29 03:27:36 2016} 1100 750} {{& Version 1.1} 1100 350} {{& PDK_RELEASE_VERSION V1} 1100 850}"
| sed 's/{&/\n/g' | awk -F\} '{ print $1 }'
Vendor CGIO
IP_OWNER cjohn
Product pk_sgmii_serdes_sx_ico_idac_sw_by2
DATE_TIME Aug 29 03:27:36 2016
Version 1.1
PDK_RELEASE_VERSION V1