📅  最后修改于: 2023-12-03 15:05:12.309000             🧑  作者: Mango
在命令行中,我们经常需要查看文本文件中特定行号之间的内容。在 Shell 脚本中,可以编写一个简单的脚本,以便快速地在命令行中查看指定的文本文件行。
所需的工具:
sed
命令:用于操作文本流中的行,并将结果输出到 stdoutawk
命令:将文本文件分成字段,并在这些字段之间进行操作使用 sed
命令实现查找特定行
具体方法是使用 sed
命令,使用 p
选项来打印特定的行:
sed -n '2,5p' file.txt
上面的命令将打印文件 “file.txt” 中的第 2 到第 5 行之间的所有内容。
使用 awk
命令实现查找特定行
使用 awk
命令,将文本文件使用 “\n” 分为字段,并在这些字段中操作。
使用以下命令查找文本文件中的特定行:
awk 'NR>=2 && NR<=5' file.txt
上面的命令将查找名为 “file.txt” 的文本文件中的第 2 到第 5 行之间的所有内容。
下面是使用该脚本实现的一个简单示例:
#!/bin/bash
file=$1
line1=$2
line2=$3
awk -v a="$line1" -v b="$line2" 'NR>=a && NR<=b{print}' $file
示例脚本接受三个参数,分别是:
运行上面的脚本,使用以下命令:
$ bash script.sh file.txt 2 5
脚本将打印指定的文本文件中的第 2 到第 5 行之间的所有内容。
在命令行中,Shell 脚本可以很方便地显示指定行号之间的所有行。使用 sed
和 awk
命令,可以快速地实现这种功能,并且可以轻松扩展到其他用例。