awk命令可以按分隔符输出不同的列
时间: 2023-07-13 09:30:31 浏览: 57
是的,awk命令是一种文本处理工具,可以按照指定的分隔符对文本进行分割,并且可以通过指定列号来输出不同的列。具体使用方法如下:
```
awk -F 分隔符 '{print $列号}' 文件名
```
其中,`-F`指定分隔符,`$列号`表示要输出的列号,可以是单个列号,也可以是多个列号,用空格隔开。例如,如果要按照逗号分隔符输出第2、3列,可以使用以下命令:
```
awk -F ',' '{print $2,$3}' 文件名
```
这样就可以输出文件中所有行的第2、3列。
相关问题
awk如何按分隔符打印后 输出也将分隔符打印出来
如果想要在awk按分隔符打印后同时输出分隔符,可以在打印时使用`OFS`和`ORS`变量,它们分别表示输出字段分隔符和输出记录分隔符。例如,以下命令将以冒号为分隔符,输出/etc/passwd文件中的第一列和第三列,并且在每个字段之间输出冒号,每行输出后添加一个换行符:
```
awk -F: '{print $1,":",$3}' OFS="" ORS="\n" /etc/passwd
```
输出结果类似于:
```
root:0
daemon:1
bin:2
sys:3
...
```
在这个命令中,`OFS=""`表示输出字段分隔符为空,`ORS="\n"`表示输出记录分隔符为换行符。在打印时,我们在每个字段之间输出冒号,这样输出就会包含原始的分隔符。
awk输出第二列第三列的时候保留分隔符
如果您想要保留第二列和第三列之间的分隔符,可以使用 `substr` 函数来截取特定位置的字符串,并使用 `match` 函数来匹配第二列和第三列之间的分隔符。以下是一个示例 awk 命令:
```shell
awk '{match($0, $2 "[^ ]*"); match($0, $3 "[^ ]*"); print substr($0, RSTART, RLENGTH)}' 文件名
```
这个命令使用 `match` 函数来匹配第二列和第三列之间的分隔符,并使用 `substr` 函数来截取该部分字符串。请将 `文件名` 替换为您要处理的文件名。