根据字段分隔符将行分割为字符串

Vij*_*jay 6 unix awk solaris

我有一个文件如下:

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 不支持作为分隔符提到的字符串吗?

Shi*_*iSi 4

事实上,Solarisawk只考虑单个字符。nawk我想说这可能是由于传统,也是运送的原因。

这个-F开关确实很特别:它获取引用字符串的第一个字符,并丢弃其余的字符,因此剩下的t--- 代表“查找制表符作为字段分隔符”。