如何获取
cat
命令的输出以仅显示文件第 85 到 158 行的输出。或者我应该使用其他文本解析器? 谢谢。
您可以使用 sed:
sed -n '85,158p' file
或
head -n 158 file | tail -n 73 # 158-85=73
您也可以使用这个:
cat file | sed -n '85,158p' file
sed '85,158!d' 文件
此命令可以正常工作,符合您的期望。
另一种选择是使用 awk。这是一个示例脚本,print_line_range.sh:
#!/usr/bin/env bash
# change the above line to where env located in your system, e.g. #!/bin/env bash
start_line_number=$1
end_line_number=$2
filepath=$3
cmd="awk 'NR >= ${start_line_number} && NR <= ${end_line_number} {print NR, \$0}' ${filepath}"
#use {print \$0}' if don't want print line number
eval "$cmd"
使用示例,
print_line_range.sh <start_line_number> <end_line_number> <filepath>