我的目标文件的分隔符为"|^/"
。
示例:
123|^/qwe|^/po9076|^/env12|^/opti|^/546454
现在要求是获取每一行中的字段数。
我累了下面的东西,但没有给出正确的结果。
echo "123|^/qwe|^/po906|^/env12|^/opti|^/54644" | awk -F'|^/' '{print NF; exit}'
如何解决这个问题?
注意:字段值中可以有|
或^
或/
。因此,分隔符应为|^/
的组合。
答案 0 :(得分:2)
$ echo "123|^/qwe|^/po906|^/env12|^/opti|^/54644" | awk -F'\\|\\^/' '{print NF; exit}'
6
man awk
和google regular expressions
。
答案 1 :(得分:0)
您应该使用大括号表达式(或字符类)作为字段分隔符:
echo "123|^/qwe|^/po906|^/env12|^/opti|^/54644" | awk -F '[|^/]+' '{print NF; exit}'
6
正则表达式[|^/]+
会将[...]
中的一个或多个给定字符作为输入字段分隔符。