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

2020-09-26 18:34发布

         点击此处--->   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命令之前 处理)结束。

先谢谢

         点击此处--->   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条回答
宇峰
1楼-- · 2020-09-26 19:12

在Linux中,您可以使用" split"命令:

分割-l 20000 inputFile.txt newFile.txt

更多详细信息:

https://kb.iu.edu/d/afar

# p#

你好纳古尔!

请您进一步说明一下,在这种情况下,限制使用大于定义大小的文件有何帮助?

或者您在谈论其他什么,例如块模式?

关于,Evgeniy。

悠然的二货
2楼-- · 2020-09-26 19:22

嗨,瓦伦!

值得注意的是,操作系统命令是在适配器获取源文件之后并且在将其发送到消息系统之前执行的。 因此,使用上述功能将无法满足您的要求。

关于Evgeniy。

昵称总是被占用
3楼-- · 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输入目录。


关于

帕特里克

Cikesha
4楼-- · 2020-09-26 19:27

嗨瓦伦

我认为可以通过文件适配器本身提供的最大文件大小(MB)来实现。

致谢

Nagur

SKY徐
5楼-- · 2020-09-26 19:22

嗨Varun

我认为可以通过文件适配器本身提供的最大文件大小(MB)来实现。

致谢

Nagur

当学会了学习
6楼-- · 2020-09-26 19:14

嗨Varun

我认为可以通过文件适配器本身提供的最大文件大小(MB)来实现。

致谢

那古尔

一周热门 更多>