在 Fedora 中使用命令行打印/回显文件中的某些行

在 Fedora 中使用命令行打印/回显文件中的某些行

对于 Fedora 操作系统

我仍然在这里学习,但我需要帮助插入一个命令,例如“XXX”来表示我有一个包含 1000 行单个产品名称的文件。我需要编写一个命令来基本上打印特定行,例如:

从 MyProductList.sh 打印第 50-100 行

这只是一个例子,供您参考。文件内只有 1000 行 1 个字的产品。每行一个字。

我需要的结果可能如下所示:

50. tea
51. coffe
52. orange
53. banana
54. etc

答案1

输出5行,从第2行开始:

$ tail <infile -n+2 | head -n5 >outfile

输出线 2 至 7:

$ tail <infile -n+2 | head -n$((7-2)) >outfile

输出线a至b:

$ a=2 ; b=7
$ tail <infile -n+$a | head -n$(($b-$a)) >outfile

答案2

如果您有一个包含一系列行的文件,每行都有编号(按顺序):

$ cat words.txt
1. something
2. something else
....
1000. yet something else

如果你想打印一系列行,你可以使用sed

$ sed -n '50,100p' words.txt
50. abandonee
51. abandoner
52. abandonment
...
98. abbacomes
99. abbacy
100. Abbadide

上面-n说“默认情况下不打印行”,50,100p意思是“对于第 50-100 行,打印该行”。

相关内容