【发布时间】:2020-06-30 15:40:46
【问题描述】:
awk -F '$' 适用于单美元符号分隔的字符串(例如a$b$c),但当涉及多个美元符号时,awk 不起作用。
预期的输出是:1$23,我尝试了以下组合但徒劳无功:
$ printf '1$23$$$456' | awk -F '$$$' '{print $1}'
1$23$$$456
$ printf '1$23$$$456' | awk -F '\$\$\$' '{print $1}'
1$23$$$456
$ printf '1$23$$$456' | awk -F '\\$\\$\\$' '{print $1}'
1$23$$$456
$ printf '1$23$$$456' | awk -F '$' '{print $1}'
1
我想知道是否有一种方法可以使用 awk 通过一系列美元符号来拆分字符串?
更新
$ awk --version
awk version 20070501
$ echo $SHELL
/usr/local/bin/fish
【问题讨论】:
-
您使用的是什么 awk 版本?
'\\$\\$\\$'为我工作。 -
见ideone.com/lgLEiv,
awk -F'\\$\\$\\$' '{print $1}' <<< '1$23$$$456'输出1$23 -
@BenjaminW。
awk version 20070501vaiawk --version -
顺便说一下,我用的是鱼壳。
-
试试
-F'[$][$][$]'