shell Unix cat只输出行的范围

g0czyy6m  于 12个月前  发布在  Shell
关注(0)|答案(4)|浏览(126)

我怎样才能得到cat命令的输出,只显示文件的85到158行的输出。
我知道我可以把数字加到每一个酸橙上,然后用管子把它排出来,但我不想在后面删除数字。
或者我应该使用其他的文本解析器?谢谢。

sbdsn5lh

sbdsn5lh1#

你可以使用sed:

sed -n '85,158p' file

字符串

head -n 158 file | tail -n 73 # 158-85=73

gcmastyq

gcmastyq2#

你也可以使用这个:

cat file | sed -n '85,158p' file

字符串

uajslkp6

uajslkp63#

sed '85,158!d'文件
此命令工作正常,为您的期望。

os8fio9y

os8fio9y4#

另一种选择是使用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>

相关问题