awk -F'@' '{print $NF}'详细举例解释上述shell命令
时间: 2024-01-14 22:04:23 浏览: 49
这个命令是用 awk 工具来进行字符串处理,-F 表示指定分割符,这里分割符是 @。 '{print $NF}' 表示打印分割后的最后一个字段。
举个例子,假设有一个文件 email.txt 内容如下:
```
john@example.com
jane.doe@example.com
jimmy@company.org
```
执行命令 `awk -F'@' '{print $NF}' email.txt` 将输出:
```
com
com
org
```
解释:以 @ 为分割符,分割每一行,然后打印分割后的最后一个字段,也就是邮箱的后缀。
相关问题
awk '{print $nf}详细例子进行解释说明
这是一个awk命令,用于输出每一行的第nf个字段(其中nf是一个变量,需要替换为具体的数字)。具体解释如下:
- awk是一个文本处理工具,在命令行中使用。
- '{print $nf}'是awk命令的主体部分,表示对于每一行,输出该行的第nf个字段。
- $nf表示第nf个字段,其中$符号表示当前行的某个字段,而nf则是一个变量,需要替换为具体的数字。
- 可以通过在命令行中设置变量值来替换nf,例如:awk -v nf=2 '{print $nf}' file.txt 表示输出file.txt文件中每一行的第二个字段。
pwd | awk -F/ '{print $NF-1}' 这个命令为什么输出-1
这个命令的作用是获取当前工作目录,并通过管道将其传递给 awk 命令进行处理。在 awk 命令中,-F/ 指定了分隔符为斜杠 (/),然后通过打印 $NF-1,输出路径中倒数第二个斜杠后的内容。
然而,输出结果为 -1 是因为在这个命令中使用了数学运算符,awk 尝试将字符串转换为数字进行计算。由于 $NF 是字符串类型,它表示最后一个字段,而不是一个数字。当尝试将字符串类型的字段减去 1 时,awk 会将其转换为数字类型,但字符串无法转换为有效的数字,因此结果为 -1。
如果你想要输出倒数第二个斜杠后的内容,可以简化命令为:
```bash
basename "$(dirname "$(pwd)")"
```
这个命令使用了 dirname 和 basename 命令来获取当前工作目录的上级目录,并输出上级目录的名称。这样就可以避免 awk 命令中的数值计算问题。