我有一个文件如下:
10temp3
20/temp4
28 temp 5
Run Code Online (Sandbox Code Playgroud)
我使用下面的命令来分割行并获取行中的最后一个数字。
awk -F"temp" '{print $NF}' temp3
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
> awk -F"temp" '{print $NF}' temp3
10temp3
20/temp4
28 temp 5
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,如果我使用 nawk 我会得到预期的输出。
> nawk -F"temp" '{print $NF}' temp3
3
4
5
>
Run Code Online (Sandbox Code Playgroud)
我可以知道原因吗?awk 不支持作为分隔符提到的字符串吗?
事实上,Solarisawk
只考虑单个字符。nawk
我想说这可能是由于传统,也是运送的原因。
这个-F
开关确实很特别:它获取引用字符串的第一个字符,并丢弃其余的字符,因此剩下的t
--- 代表“查找制表符作为字段分隔符”。