String Bash中的部分字符串拆分 让我们考虑这个字符串:
00x\00x\00x\00x\00x\00x\00x\00x\00x\g09x\t20x\00x\00x\00x\00x\00x\ 我要检索的是: 00x\00x\00x\00x\00x\00x\00x\00x\00x\00x\g09x\t20x\ 基本上,逻辑是:String Bash中的部分字符串拆分 让我们考虑这个字符串:,string,bash,split,partial,String,Bash,Split,Partial,00x\00x\00x\00x\00x\00x\00x\00x\00x\g09x\t20x\00x\00x\00x\00x\00x\ 我要检索的是: 00x\00x\00x\00x\00x\00x\00x\00x\00x\00x\g09x\t20x\ 基本上,逻辑是: 只要是00x\就继续读取字符串的剩余部分 只要不是00x\就继续读取字符串的剩余部分。 分开 如何在bash中实现这一点?注意中间有一个“9”和一个“T”。因此,在200x\token之间可能存在“垃圾”。因此,我不能将字符串拆分
$ awk '
BEGIN {
FS=ORS="\\"
}
{
for(i=1;i<=NF;i++)
if(($i=="00x")&&p!="00x"&&p!="") {
printf "\n"
exit
} else {
p=$i
print $i
}
}' file
在使用负查找的perl中:
$ perl -ne 's/(?<!00x)\\00x.*/\\/g;print' file
00x\00x\00x\00x\00x\00x\00x\00x\00x\g09x\t20x\
$perl-ne的/(?谢谢。这正是我想要的!
$ perl -ne 's/(?<!00x)\\00x.*/\\/g;print' file
00x\00x\00x\00x\00x\00x\00x\00x\00x\g09x\t20x\