Shell awk中的多个字段分隔符(字段分隔符在一起)
我有一个文本文件Shell awk中的多个字段分隔符(字段分隔符在一起),shell,awk,sed,grep,sh,Shell,Awk,Sed,Grep,Sh,我有一个文本文件 abc-AB9-3.2-def abc-5.6-def 我需要得到在“-”符号后面跟“任意数字”的字符串。 我需要在第一种情况下得到-3,第二种情况下得到-5之前的字符串 预期产出为: abc-AB9 abc 请帮忙。我的分隔符是“-”后跟任何数字。您可以尝试使用此awk awk -F"-[0-9]+" '{print $1}' yourfile (或) 另一种方式(正如Jotne所评论的那样): 您可以试试这个awk awk -F"-[0-9]+" '{print
abc-AB9-3.2-def
abc-5.6-def
我需要得到在“-”符号后面跟“任意数字”的字符串。我需要在第一种情况下得到-3,第二种情况下得到-5之前的字符串 预期产出为:
abc-AB9
abc
请帮忙。我的分隔符是“-”后跟任何数字。您可以尝试使用此
awk
awk -F"-[0-9]+" '{print $1}' yourfile
(或)
另一种方式(正如Jotne所评论的那样):
您可以试试这个
awk
awk -F"-[0-9]+" '{print $1}' yourfile
(或)
另一种方式(正如Jotne所评论的那样):
通过sed
$ sed 's/^\(.*\)-[0-9].*/\1/g' file
abc-AB9
abc
通过grep
$ grep -oP '.*(?=-\d)' file
abc-AB9
abc
通过sed
$ sed 's/^\(.*\)-[0-9].*/\1/g' file
abc-AB9
abc
通过grep
$ grep -oP '.*(?=-\d)' file
abc-AB9
abc
测试:
测试:
使用
sed
删除不相关的部分:
sed 's/-[0-9].*//' input
使用
sed
删除不相关的部分:
sed 's/-[0-9].*//' input
我认为这是一个GNU awk解决方案。@AvinashRaj这是一个通用的
awk
解决方案。如果这是RS
,那么您需要GNU awk
@sat您不需要+
符号,因为OP表示任何数字,所以“-[0-9]”
就足够了。您可以将其缩短为:awk-F“-[0-9]”“{$0=$1}1”文件
我认为这是一个GNU awk解决方案。@AvinashRaj这是一个通用的awk
解决方案。如果这是RS
,那么您需要GNU awk
@sat您不需要+
符号,因为OP表示任何数字,所以“-[0-9]”
就足够了。您可以将其缩短为:awk-F“-[0-9]”“{$0=$1}1”文件