awk如何按分隔符打印后 输出也将分隔符打印出来
时间: 2023-12-19 12:07:34 浏览: 80
如果想要在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命令可以按分隔符输出不同的列
是的,awk命令可以按照指定的分隔符对输入的文本进行切割,并且输出文本的不同列。常用的命令格式为:
```bash
awk -F 分隔符 '{print $列号}' 文件名
```
其中,-F参数指定分隔符,$列号指定输出的列号,文件名指定输入的文件。
例如,如果我们有一个名为test.txt的文本文件,其中每行内容以空格分隔,我们可以使用以下命令输出第二列:
```bash
awk -F " " '{print $2}' test.txt
```
如果我们想要输出第一列和第三列,可以使用以下命令:
```bash
awk -F " " '{print $1,$3}' test.txt
```
注意,多个列号之间需要用逗号分隔。
使用,awk 按照分隔符分割字符串,并将分隔符去掉,输出分割的结果
在Unix/Linux命令行工具awk中,可以利用内置的split()函数按照指定的分隔符分割字符串,并通过for循环或其他操作去除分隔符。awk的基本语法是`awk '{action} pattern' input_file`,其中,`action`是你想要对每个匹配行执行的操作,`pattern`是选择哪些行进行处理的规则。
下面是一个例子,假设我们有一个名为"data.txt"的文件,内容如下:
```
name,age,city
Alice,25,New York
Bob,30,Los Angeles
Charlie,35,San Francisco
```
我们可以使用awk按逗号分割并去掉分隔符,保留每一列的内容:
```bash
awk -F ',' '{ for(i=1;i<=NF;i++) { print $i } } data.txt`
```
这里,`-F ','`指定了分隔符为逗号,`NF`代表字段的数量,`$i`则是第i个字段的值。运行上述命令后,你会看到如下的输出:
```
name
25
New York
Bob
30
Los Angeles
Charlie
35
San Francisco
```
阅读全文