awk打印指定行
时间: 2023-06-29 10:07:26 浏览: 132
可以使用 `awk` 命令来打印指定行,其中 `-F` 表示指定分隔符,`NR` 表示行号,例如:
假设有一个文件 `test.txt`,内容如下:
```
This is line 1
This is line 2
This is line 3
```
要打印第二行,可以使用以下命令:
```
awk -F'\n' 'NR==2{print}' test.txt
```
输出结果为:
```
This is line 2
```
解释一下上面的命令:
1. `-F'\n'` 指定分隔符为换行符,也就是按行读取文件。
2. `'NR==2{print}'` 表示只处理第二行,并打印出来。
3. `test.txt` 表示要处理的文件名。
如果要打印多行,可以使用以下命令:
```
awk -F'\n' 'NR>=2&&NR<=3{print}' test.txt
```
输出结果为:
```
This is line 2
This is line 3
```
解释一下上面的命令:
1. `-F'\n'` 指定分隔符为换行符,也就是按行读取文件。
2. `'NR>=2&&NR<=3{print}'` 表示处理第二行到第三行,并打印出来。
3. `test.txt` 表示要处理的文件名。
相关问题
linux awk 指定换行符
在awk中,输入记录默认以换行符分隔。如果你想指定不同的换行符,可以使用RS变量来设置输入记录分隔符。例如,如果你想将输入记录分隔符设置为“|”号,可以这样写:
```
awk 'BEGIN { RS="|" } { print $0 }' file.txt
```
上面的代码中,`BEGIN`块中的`RS="|"`将输入记录分隔符设置为“|”号。因此,awk将每个以“|”号分隔的文本块视为一个单独的输入记录。`print $0`语句将每个输入记录打印到屏幕上。`file.txt`是输入文件的名称。
如果你想将换行符设置回默认值,请在BEGIN块中将RS变量设置为“\n”:
```
awk 'BEGIN { RS="\n" } { print $0 }' file.txt
```
用awk筛选掉指定行,并打印第一列
可以使用以下命令,在 awk 中同时筛选掉指定行并打印第一列:
```
awk 'NR!=3 {print $1}' file.txt
```
这个命令与上一个命令非常相似,只是添加了一个 {print $1} 的部分。这个部分告诉 awk 打印每一行的第一列。
因此,这个命令将从 file.txt 文件中筛选掉第三行,并打印每一行的第一列。输出将是:
```
Line
Line
Line
Line
```
如果你不想打印第一列,只需要将命令中的 {print $1} 部分删除即可。
阅读全文