gpt4 book ai didi

shell - 如何使用 'split'命令

转载 作者:行者123 更新时间:2023-12-04 05:16:37 34 4
gpt4 key购买 nike

我有一个 2000 行的文件。我正在使用以下内容每 100 行拆分文件。

split -l 100 file.txt outputfile.txt

我想在每个文件内容的末尾添加一个“FFFFFF”,在拆分之后我还想指定文件使用的扩展名,与上面的命令一样,输出如下。
outputfile.txtxa, outputfile.txtxb etc...

我已经阅读了 split 的手册页并浏览了网页,但是我找不到解决方案。

任何建议表示赞赏。

最佳答案

对于一次性解决方案,您可以使用 awk像这样:

awk 'NR%100==1 { ++i } { print $0 (NR%100==0 ? "\nFFFFFF" : "") > "outputfile" i ".txt" }' file.txt

此外,这里的优点是可以更好地控制输出文件名,使它们更漂亮。如果您需要更花哨的东西,请告诉我。干杯。

user1937的说明:

如果您熟悉 modulo operator , NR%100==1对于第 1 行、第 101 行、第 201 行、第 301 行等,将返回 true。每次为真时,变量 i递增。注意 awk语句由条件/ Action 块组成。所以 NR%100==1是条件和 ++i是 Action 。然后您会注意到(希望如此)具有打印操作的块缺少条件。因此,每一行输入都被打印(一直)。 i的值简单地确定输出要打印到哪个文件。

另一个你可能不熟悉的是: (NR%100==0 ? "\nFFFFFF" : "") .这是一个
ternary operator这是以下的简写: if (NR%100==0) print "\nFFFFFF"; else print "") .哈。
awk可以使用以下形式的模式/操作语句构建代码:
NR%100==1                             # pattern1
{
++i # action1
}

{
print $0 ... # action2
}

如您所见,pattern1 仅适用于 action1。模式 1 不适用于 action2。

关于shell - 如何使用 'split'命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14188855/

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