在OS命令上需要帮助以分割文件

2020-09-26 18:34发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的专家, 我正在处理一个要求...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我正在处理一个要求,即源文件(csv格式)的大小很大(最大100 MB)。
我想将源文件分成多个文件,例如20MB 每个文件有5个文件供进一步处理。

我想使用PI File sender通道中可用的脚本选项实现此目的

"在处理消息之前运行操作系统命令"

我们正在使用SunOS操作系统

在脚本中,我要实现源文件的以下各项。
1。 删除第1 5行和最后一行(前5行是页眉,最后是页脚)
2。 计算行数并将计数添加到文件名

3。 根据每个文件20000行或每个文件20MB的大小分割文件

请向我提供建议,以实现我的 requirement.at 发件人comm频道(在运行OS命令之前 处理)结束。

先谢谢

6条回答
昵称总是被占用
2020-09-26 19:10

嗨Varun,

#从"您的文件"中删除前5行
 sed -i 1,5d yourfile

 #删除" yourfile"的最后一行:
 sed -i'$ d'yourfile

 #计算"您的文件"中的行数,并将其添加到文件名中:
 linecount =`wc -l <​​yourfile`
 mv yourfile yourfile_ $ linecount

 #将" yourfile"分割成几个" yourfile_ *"文件,每个文件20K行
 分割-l 20000 yourfile yourfile_
 
 

如果您不熟悉Shell脚本并且以后有类似的要求,则可以找到有关Stackoverflow上您可能想到的几乎所有内容的代码片段。

正如Evgeniy解释的那样,在发送方通信通道中运行诸如外部命令之类的脚本不会削减脚本。 您将需要在源应用程序中将其作为文件创建的后处理来运行,或者需要设置作业来处理文件,然后将其移至PI输入目录。


关于

帕特里克

一周热门 更多>