我正在尝试编写一个循环,读取文本文件并打印以(t:)开头的所有行。该循环最多应打印200行包含(t:)单词的输出文件。以(t:)开头的其余单词应在其他output.file中打印如何执行此操作?
基本上脚本应该做的是它不应该打印超过200行。如果超过200行,则其余行应打印到另一个输出文件中。
例如
文本文件包含

(t:) should print in other output.
sfsfsaff
(t:) blablabla
(t:) should print in other output.
(t:) blablalbalbalbalba
 blalblabalbalbab
balbalbablaba
balbablalbalba
balbalbalbab
ablablalbab.
(t:) blablabla
(t:) blablabla

输出.txt
    (t:) should print in other output.
    (t:) blablabla
    (t:) should print in other output.
    (t:) blablalbalbalbalba
    (t:) blablabla
    (t:) blablabla

最佳答案

你甚至不需要一个循环。您可以使用现有的工具,并将它们结合在良好的OL’UNIX传统中:

cat inputfile | grep "^t\:" | split -l 200

当然,如果输出中不需要前导t:,您仍然可以进行过滤等修改…
有关更多详细信息,请阅读grepsplit命令的手册页…

08-27 17:30