小编use*_*380的帖子

Ruby通过标头值解析csv

我正在研究一种方法来获取CSV文件(带有头文件)并使用Ruby解析它CSV.parse,但我只想保存特定的列.

CSV看起来像这样:

NAME,SUPERNET_IP,POP_NAME,ADDRESS_BLOCK_START,ADDRESS_BLOCK_END,Service,ISP Service ID,WCC,DUNSID
Retail,186.43.168.0,text1,186.43.168.0,186.43.175.255,XYZ,XYZB00090095,Enabled,227015716
Retail,186.57.80.0,text2,186.57.80.0,186.57.87.255,XYZ,XYXB00090095,Enabled,227015716
Run Code Online (Sandbox Code Playgroud)

我想要保留的唯一字段是:

POP_NAME,ADDRESS_BLOCK_START,ADDRESS_BLOCK_END,WCC
Run Code Online (Sandbox Code Playgroud)

有没有办法通过特定的标题名称解析CSV,例如:

mycsv = CSV.parse(csv_data, {:headers => true, (list of headers to keep here) })
Run Code Online (Sandbox Code Playgroud)

此示例假设csv_data是由上面的示例CSV形成的字符串.

作为权宜之计,我只是将CSV转换为阵列数组,但这并不是我所追求的.我宁愿把它保存为CSV对象.

myreturnedcsv = []
mycsv = CSV.parse(csv_data, {:headers => true, })
mycsv.each do |row|
  myreturnedcsv.push([row[2], row[3], row[4],row[7]])
end
Run Code Online (Sandbox Code Playgroud)

ruby csv ruby-on-rails

2
推荐指数
1
解决办法
3990
查看次数

使用find和curl将目录内容上传到Sonatype Nexus存储库

我正在尝试使用curl通过bash将目录的内容上传到nexus,并且在我正在使用的命令中遇到一些问题

简而言之,我想在特定目录上执行find命令,并使用-exec {}动作对nexus进行curl

但是我的find命令返回包含源目录的文件路径,我想更改它,所以我只显示内容而不是完整路径

例如,假设我有一个名为trunk的目录,其中包含这些文件和子目录

trunk/directory1/file1
trunk/directory2/file1
trunk/directory2/file2
Run Code Online (Sandbox Code Playgroud)

我希望我的find命令返回

directory1/file1
directory2/file1
directory2/file2
Run Code Online (Sandbox Code Playgroud)

然后这可以传递给我的exec命令

我当前的find命令是: -

find trunk -type f -exec curl --user user:pass --ftp-create-dirs -T {} https://PATH_TO_NEXUS/{} \;
Run Code Online (Sandbox Code Playgroud)

除了在nexus中创建的文件外,这个工作正常

https://PATH_TO_NEXUS/trunk/directory1/file1
Run Code Online (Sandbox Code Playgroud)

而我想要的是

https://PATH_TO_NEXUS/directory1/file1
Run Code Online (Sandbox Code Playgroud)

有人有任何想法吗?

bash curl nexus

2
推荐指数
1
解决办法
5131
查看次数

标签 统计

bash ×1

csv ×1

curl ×1

nexus ×1

ruby ×1

ruby-on-rails ×1