如何删除string-awk中的空格和特定字符
下面是一个输入如何删除string-awk中的空格和特定字符,awk,Awk,下面是一个输入 !{ID=34, ID2=35} > !{ID=99, ID2=23} > !{ID=18, ID2=87} < 因此,使用“sub”函数,我认为可以将空格替换为空白,但结果显示: 1#是#否 你能告诉我怎么了吗? 如果可能的话,教我如何删除“{”和“}”。 如果你能给我看awk文件版本而不是一行,我将不胜感激 BEGIN { VALUES = "" L_EXIST = "NO" R_EXIST = "NO"
!{ID=34, ID2=35}
>
!{ID=99, ID2=23}
>
!{ID=18, ID2=87}
<
因此,使用“sub”函数,我认为可以将空格替换为空白,但结果显示:
1#是#否
你能告诉我怎么了吗?
如果可能的话,教我如何删除“{”和“}”。
如果你能给我看awk文件版本而不是一行,我将不胜感激
BEGIN {
VALUES = ""
L_EXIST = "NO"
R_EXIST = "NO"
}
/!/ { VALUES = gsub(" ", "", $0);
getline;
if ($1 == ">") L_EXIST = "YES";
else if ($1 == "<") R_EXIST = "YES";
print VALUES"#"L_EXIST"#"R_EXIST
}
END {
}
开始{
VALUES=“”
L_EXIST=“否”
R_EXIST=“否”
}
/!/ {VALUES=gsub(“,”,$0);
getline;
如果($1==“>”)L_EXIST=“YES”;
否则,如果($1==”假设您有以下输入:
input.txt
!{ID=34,ID2=35}
!{ID=36,ID2=37}
>
您可以使用以下awk命令
awk -F'[!{}, ]' 'NR>1{yn="NO";if($1==">")yn="YES";print l"#"yn}{l=$3","$5}' input.txt
要生成此输出,请执行以下操作:
ID=34,ID2=35#否
ID=36,ID2=37#是
假设您有以下输入:
input.txt
!{ID=34,ID2=35}
!{ID=36,ID2=37}
>
您可以使用以下awk命令
awk -F'[!{}, ]' 'NR>1{yn="NO";if($1==">")yn="YES";print l"#"yn}{l=$3","$5}' input.txt
要生成此输出,请执行以下操作:
ID=34,ID2=35#否
ID=36,ID2=37#是
给定您的示例输入:
$ cat file
!{ID=34, ID2=35}
>
!{ID=99, ID2=23}
>
!{ID=18, ID2=87}
<
字段分隔符设置为使用您感兴趣的行部分之间的空格和其他字符。记录分隔符设置为!
,以便将每对行视为单个记录
第一条记录是空的(从第一行开始,一直到第一条!
),因此我们只处理之后的记录。输出是使用printf
,用三元数来确定最后一部分(我假设只有两个选项,
或,给定您的示例输入:
$ cat file
!{ID=34, ID2=35}
>
!{ID=99, ID2=23}
>
!{ID=18, ID2=87}
<
字段分隔符设置为使用您感兴趣的行部分之间的空格和其他字符。记录分隔符设置为!
,以便将每对行视为单个记录
第一条记录是空的(从第一行开始,一直到第一个!
),因此我们只处理之后的记录。输出是使用printf
构造的,用三元组确定最后一部分(我假设只有两个选项,
或您需要更清楚地解释输入如何映射到输出。更多的示例可能会有所帮助。echo'!{ID=34,ID2=35}';tr-d'[!{}]
返回ID=34,ID2=35
(-d
删除,然后返回一组字符)。不确定额外的#YES#NO
是什么意思。谢谢。不过我只需要使用awk。围绕'>'
的那些单引号是新的-它们应该存在吗?这些输入行的相应输出是什么?您需要更清楚地解释输入如何映射到输出。更多的示例可能会有所帮助l、 echo'!{ID=34,ID2=35}'|tr-d'[!{}]
返回ID=34,ID2=35
(-d
删除,然后返回一组字符)。不确定额外的#YES#NO
是什么意思。谢谢。不过我只需要使用awk。
周围的单引号是新的-它们应该在那里吗?这些输入行的相应输出是什么?谢谢。输入总是像!{ID=34,ID2=35}和“>”,然后!{ID=36,ID2=37}和“>”。你能告诉我如何将你的解决方案转换成awk文件吗?是#否
的意思是什么?所以有时是
,有时是@Sigularity如果你有更多的细节要添加,请编辑你的问题使其更清楚。@Sigularity???你能给出一个你的输入和经验的独立示例吗ected输出?(请编辑问题,不要在评论中发布!)谢谢。输入总是像!{ID=34,ID2=35}和'>'然后!{ID=36,ID2=37}和“>”。你能告诉我如何将你的解决方案转换成awk文件吗?是#否
的意思是什么?所以有时是
,有时是@Sigularity如果你有更多的细节要添加,请编辑你的问题使其更清楚。@Sigularity???你能给出一个你的输入和经验的独立示例吗ected输出?(请编辑问题,不要在评论中发布!)如果我还有一个问题与这个问题非常相似,那么什么是好的方法?新问题还是更新问题?对不起,我在这个网站上没有太多。接受答案并向上投票。发布新问题。祝你好运。@Sigularity我刚刚更新了一点以简化它。我建议你尝试理解这里的代码,并希望你能理解它你可以根据你的情况进行调整。如果没有,那么最好问一个新问题。如果你决定问一个新问题,请不要忘记我们给你的关于如何提问的建议。当然。我会保留它。非常感谢。如果我还有一个与此非常相似的问题,那会是什么问题d方法?新问题还是更新问题?对不起,我在这个网站上没有太多。接受答案并投票表决。发布新问题。祝你好运。@Sigularity我刚刚更新了一点,以简化它。我建议你尝试理解这里的代码,希望你能够将其调整到稍微不同的场景。如果没有,那么perhaps最好问一个新问题。如果你决定问一个新问题,别忘了我们给你的关于如何提问的建议。当然。我不会问。非常感谢。