Questions tagged «csv»

包含数据的文件通常以逗号(因此用逗号分隔值)排列在表中以分隔列。行之间用换行符分隔(但并非所有换行符都是行分隔符,因为可以用引号引起来的字段包含分隔符换行符。对于完整的CSV数据,请使用此标记,而不是每行一个记录或完全不加引号的简单情况(使用csv-simple这类数据)。


2
当空单元格被漏掉时,如何在控制台中显示TSV(csv):`column -t -s $'\ t'`
我有带有列的文件tab。 当某些行的单元格为空时(在开始时,在中间),我有文件。 在这种情况下,column -t -s $'\t'只会失败: 输入: $ echo -e 'A\tB\tC\tD\n\tb1\t\td1\n\t\t\td2\na3\t\t\td3' > in.tsv $ hexdump -C in.tsv 00000000 41 09 42 09 43 09 44 0a 09 62 31 09 09 64 31 0a |A.B.C.D..b1..d1.| 00000010 09 09 09 64 32 0a 61 33 09 09 09 64 33 0a …

6
从文件中删除行,具体取决于在另一个文件中找到的行
文件file1.txt包含以下行: /api/purchase/<hash>/index.html 例如: /api/purchase/12ab09f46/index.html 文件file2.csv包含以下行: <hash>,timestamp,ip_address 例如: 12ab09f46,20150812235200,22.231.113.64 a77b3ff22,20150812235959,194.66.82.11 我想过滤file2.csv,以删除在file1.txt中也存在哈希值的所有行。就是说: cat file1.txt | extract <hash> | sed '/<hash>/d' file2.csv 或类似的东西。 它应该很简单,但是我似乎无法使其工作。 任何人都可以为该任务提供有效的管道吗?

2
重新索引大型CSV文件
我在这个有用的线程中仔细研究了答案,但是我的问题似乎相去甚远,以至于我无法想到一个好的答案(至少使用sed)。 我有一个很大的CSV文件(超过200 GB),其中的行如下所示: <alphanumerical_identifier>,<number> 在<alphanumerical_identifier>整个文件中唯一的位置。我想创建一个单独的文件,用索引替换第一列,即 <index>,<number> 这样我们得到: 1, <number> 2, <number> 3, <number> 可以awk在不将完整文件加载到内存的情况下生成递增索引吗? 由于索引单调增加,因此最好只删除索引。解决方案会有所不同吗,即: <number> <number> <number>
11 files  sed  awk  csv 

3
格式化'ps'命令输出,不带空格
我有以下ps命令来获取所有正在运行的进程的特定属性以及一些属性: ps --no-headers -exo "uname,ppid,pid,etime,%cpu,%mem,args" 我希望将其格式化为CSV格式,以便我可以对其进行解析。注意,我将args放在末尾以使解析变得容易。我认为,其他任何专栏中都不会存在遗嘱-如果我错了,请纠正我。 如何删除空格?
11 csv  ps 

5
用逗号替换下划线并删除CSV中的双引号
我有一个CSV文件 input.csv "1_1_0_0_76" "1_1_0_0_77" "1_1_0_0_78" "1_1_0_0_79" "1_1_0_0_80" "1_1_0_0_81" "1_1_0_0_82" "1_1_0_0_83" "1_1_0_0_84" "1_1_0_0_85" ............. 等等。 我需要将此CSV文件转换为 result.csv 1,1,0,0,76 1,1,0,0,77 1,1,0,0,78 1,1,0,0,79 1,1,0,0,80 1,1,0,0,81 1,1,0,0,82 1,1,0,0,83 1,1,0,0,84 1,1,0,0,85

4
仅删除双引号中出现的逗号
在文本文件中,我要删除,(逗号)以及"(引号)(仅当双引号包含以逗号分隔的数字时)。 56,72,"12,34,54",x,y,"foo,a,b,bar" 预期产量 56,72,123454,x,y,"foo,a,b,bar" 注意:我仅以示例的方式显示上述行。我的文本文件包含很多行,如上,双引号中用逗号分隔的数字应有所不同。那是, 56,72,"12,34,54",x,y,"foo,a,b,bar" 56,92,"12,34",x,y,"foo,a,b,bar" 56,72,"12,34,54,78,76,54,67",x,y,"foo,a,b,bar" 56,72,x,y,"foo,a,b,bar","12,34,54" 56,72,x,y,"foo,a,b,bar","12,34,54","45,57,84,92","bar,foo" 预期产量: 56,72,123454,x,y,"foo,a,b,bar" 56,92,1234,x,y,"foo,a,b,bar" 56,72,12345478765467,x,y,"foo,a,b,bar" 56,72,x,y,"foo,a,b,bar",123454 56,72,x,y,"foo,a,b,bar",123454,45578492,"bar,foo" n在双引号中有许多数字,用逗号分隔。并且还要保留包含字符的双引号。 我喜欢sed文字处理工具。如果您sed对此提出任何解决方案,我感到很高兴。

5
将bash中的定界文本文件解析为命令参数
我有一个文本文件,像这样拆分: field1,field2,field3 xield1,xield2,xield3 dield1,dield2,dield3 gield1,gield2,gield3 这些列中的每一列都是程序的参数,我希望每行都调用该程序 我希望循环,就像: for $i in file command $field2 -x $field3 -PN -$field1 >> output done 在bash中完成这样的事情的最佳方法是什么?

1
awk意外地从字符串中删除了点
我想在文件中添加一列(第二名),.csv并且我希望该列的值是字符串并用引号引起来; 以下命令会添加列,但不带引号: awk -F"," 'BEGIN { OFS = "," } {$2="2.4.0"; print}' test.csv > output.csv 以下方法的确包含了引号,但是由于某种原因,它删除.了值中的最后一个(点) awk -F"," 'BEGIN { OFS = "," } {$2="\""2.4.0"\""; print}' test.csv > output.csv 所以我的值最终是“ 2.40”。 我应该怎么做?
9 awk  csv 

1
如何获取第n列包含第m列的行
我有一个包含域和网络邮件的CSV文件,如下所示: site1.com,mail.site1.com site2.com,testmail.com site3.com,mx.site3.com site4.com,smtp.site4.com site5.com,foomail.com site6.com,barmail.com site7.com,webmail.site7.com site8.com,01mx.site8.com site9.com,foobarmail.com site10.com,mx-smtp222.site10.com 我想获取其中webmails列包含同一行的domains列的行。对于上面的示例,输出应为: site1.com,mail.site1.com site3.com,mx.site3.com site4.com,smtp.site4.com site7.com,webmail.site7.com site8.com,01mx.site8.com site10.com,mx-smtp222.site10.com

7
仅保留包含定界符确切数目的行
我有一个巨大的csv文件,其中10个字段用逗号分隔。不幸的是,某些行格式错误,并且不完全包含10个逗号(当我想将文件读入R时,这会引起一些问题)。如何仅过滤出恰好包含10个逗号的行?
9 csv  filter 

4
将CSV转换为HTML表
我有一个Medical.csv文件,其行格式如下, field: 'participation.type', displayName: 'program_type', type: 'String',path:'participation' field: 'participation.program', displayName: 'program_name', type: 'String',path:'participation' 我想编写一个bash脚本,以将其动态转换为HTML表field,displayName并type作为标题。 将Csv2HtmlConverter.sh(通过在回答灵感转换CSV HTML表格使用到)是 echo "<table>" ; while read INPUT ; do echo "<tr><td>${INPUT//,/</td><td>}</td></tr>" ; done < Medical.csv ; echo "</table>" 对于上面的脚本的结果如下这是罚款,在一定程度上,但我想补充<th>field</th>,<th>displayName</th>动态。 <table> <tr><td>field: 'participation.type'</td><td> displayName: 'program_type'</td><td> type: 'String'</td><td>path:'participation'</td></tr> <tr><td>field: 'participation.program'</td><td> displayName: 'program_name'</td><td> type: 'String'</td><td>path:'participation'</td></tr> </table>

6
如何将制表符分隔的数据转换为逗号分隔的数据?
我通过亚马逊的ec2命令行工具请求ec2快照列表: ec2-describe-snapshots -H --hide-tags > snapshots.csv 数据看起来像这样: SnapshotId VolumeId StartTime OwnerId VolumeSize Description snap-00b66464 vol-b99a38d0 2012-01-05 5098939 160 my backup 我如何在将数据重定向到之前拦截数据snapshots.csv并执行以下操作: 用逗号替换“制表符” 用引号封装值 如果值是全数字,请在=其前面加上一个前缀,以便excel将其视为文本-例如OwnerId应为"=5098939“(如果不能内联完成则不需要此,而是需要脚本文件或函数) 所需的输出: "SnapshotId","VolumeId","StartTime","OwnerId","VolumeSize","Description" "snap-00b66464","vol-b99a38d0","2012-01-05","=5098939","=160","my backup"

2
Catdoc xls2csv仅转换一张纸
我xls2csv在Debian / Squeeze 上安装了Catdoc 。当我将文件复制到一个文件夹/var/www/xyz(将所有工作表转换为.csv格式,用分隔)时,它曾经可以很好地工作^L。 但是现在,无论出于何种原因,当我使用以下命令时,它仅转换第一张纸: xls2csv filename.xls > filename.csv 关于我在这里做错什么的任何建议?
3 conversion  csv 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.