gpt4 book ai didi

bash - 根据bash中的单词数拆分文本文件

转载 作者:行者123 更新时间:2023-11-29 09:23:18 25 4
gpt4 key购买 nike

我知道从文件中提取行的子集,我可以这样做:

sed -n 2208202,2218201p file >>new

bash 中有没有一种方法可以根据单词提取文件的子集(保留确切的顺序)?比如提取文件的前10k个词,或者10000到20000个词?

最佳答案

以此为测试文件:

$ cat file
one two
three four five
six seven
eight nine
ten eleven twelve
thirteen
fourteen

使用 GNU awk ( gawk ),让我们选择单词 4 到 10:

$ awk -v RS='[[:space:]]+' '4<=NR && NR<=10{ printf "%s%s",$0,RT } END{print""}' file
four five
six seven
eight nine
ten

请注意,这会保留原始文件的空白和换行符。

工作原理

  • -v RS='[[:space:]]+'

    这会将 awk 的记录分隔符设置为空格的任意组合。

  • 4<=NR && NR<=10{ printf "%s%s",$0,RT }

    对于记录 4 到 10,这会打印输入文件中后面跟有任何空格的记录。 RT不是 POSIX。

  • END{print""}

    这会打印一个最后的换行符,如果最后一个词不是一行的最后一个,则需要这个换行符。

关于bash - 根据bash中的单词数拆分文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37176124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com