gpt4 book ai didi

awk - 使用 AWK 将单个文件的片段分解为多个文件,但我需要进一步的指导

转载 作者:行者123 更新时间:2023-12-05 03:15:26 24 4
gpt4 key购买 nike

我对这类任务还很陌生,但我已经用尽了我的资源,因此我伸出援助之手。

我有一个由串联文件组成的文件。我能够使用下面的确切代码行将文件分开:

awk "/PATTERN/{x="F"++i;}{print > x;}"源文件

但是 -

  1. 如果可能的话,我想为输出文件指定一个目录 - 上面的脚本将输出文件写入“sourceFile”目录,我希望将这些文件放在某种临时目录中。

  2. 如果输出文件能够保留它们的内容,那将非常有帮助“sourceFile”名称末尾可能有一个计数器维护 .txt 文件类型 - 即 sourceFile1.txt,sourceFile2.txt等

我尝试了以下方法来保留源文件名,但没有成功:

set F=sourceFile
awk "/PATTERN/{x="F"++i;}{print > x;}" sourceFile

如果这是最基本的,我深表歉意,但这对日常工作有很大帮助 - 所以我希望有人能提供帮助。提前致谢!

最佳答案

awk 可以接受 shell 变量,如果你想设置目录和文件名:

D="/path/to/newfiles/"
F="sourceFile"

awk -v d="$D" -v f="$F" '/PATTERN/{x=d f (++i)}{print > x;}' sourceFile

现在,目标目录和文件名是动态的,您可以在调用 awk 之前将它们设置为适当的值。

还有一点你要注意。您的文件中有多少 PATTERN。如果太多,您将看到类似“打开的文件太多”之类的错误消息。在这种情况下,您必须在写入新文件之前关闭最后一个文件。

关于awk - 使用 AWK 将单个文件的片段分解为多个文件,但我需要进一步的指导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16286682/

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