perl使用bak文件CSV进行一行编辑
我有一个字段,如果csv文件中一行的第11个字段大于6个字符, 整个线路需要拆除perl使用bak文件CSV进行一行编辑,perl,Perl,我有一个字段,如果csv文件中一行的第11个字段大于6个字符, 整个线路需要拆除 casoer@casperbox::/here/s/johnny$ head /come/and/play/with/us/danny.csv D,642,0642,RED,RUM,,M,,L,S,FOREVERRR,0,862, D,642,0642,RED,RUM,,M,,L,L,WONKY,13783,10196, D,642,0642,RED,RUM,,M,,L,L,WONKY,13783,10196, D
casoer@casperbox::/here/s/johnny$ head /come/and/play/with/us/danny.csv
D,642,0642,RED,RUM,,M,,L,S,FOREVERRR,0,862,
D,642,0642,RED,RUM,,M,,L,L,WONKY,13783,10196,
D,642,0642,RED,RUM,,M,,L,L,WONKY,13783,10196,
D,642,0642,RED,RUM,,M,,L,L,CRACK?g,221,188,
,642,0642,RED,RUM,,M,,L,L,CRACK?g,221,188,
D,642,0642,RED,RUM,,M,,S,S,TRIP,4169,2858,
D,642,0642,RED,RUM,,M,,S,S,TRIP,4169,2858,
D,642,0642,RED,RUM,,M,,S,S,WRIDE,450,450,
D,642,0642,RED,RUM,,M,,S,S,WRIDE,450,450,
D,642,0642,RED,RUM,,M,,L,L,FOOHK,157,157,
这很有效--
这将删除行“D,6420642,红色,RUM,,M,,L,S,Foreverr,0862,”
当我试着整理这个的时候-
casoer@casperbox::/here/s/johnny$ perl -p -i.bak -nle 'print unless /\,\w{7}\,/' /come/and/play/with/us/danny.csv
已创建.bak文件,但未从内嵌文件中删除“D、6420642、红色、RUM、M、L、S、Foreverr、0862”。
如果我们要让oneliner创建一个烘焙文件进行内联编辑,我想让oneliner创建一个烘焙文件。要匹配7个或更多字符,您需要在7个字符后添加一个,
包含-p
会导致perl在循环的继续
阶段中打印$\ucode>,因此您将在不匹配的行上加倍
但是,为了仅匹配第11个字段,更适合在“,”上自动分割线并测试字段的长度:
perl-i.bak-F,-anwe'打印,除非长度$F[10]>6'
请记住,如果CSV不包含引号,则此命令只能作为一行行运行。如果您需要更多,您必须查看模块 要匹配7个或更多字符,您需要在7个字符后添加一个,
包含-p
会导致perl在循环的继续
阶段中打印$\ucode>,因此您将在不匹配的行上加倍
但是,为了仅匹配第11个字段,更适合在“,”上自动分割线并测试字段的长度:
perl-i.bak-F,-anwe'打印,除非长度$F[10]>6'
请记住,如果您的CSV不包含带引号的逗号,则这只能作为一行。如果您需要更多,您必须查看模块 因为您使用的是-p
开关,它会覆盖-n
开关,并为每一行输入生成输出
我敢打赌,您现在看到的是输入中大多数行的重复输出。因为您使用的是-p
开关,它覆盖-n
开关,并为每一行输入生成输出
我敢打赌,您现在看到输入中的大多数行都有重复的输出。我不知道为什么这两个行都可以工作<代码>\w{7}
与任何行都不匹配<代码>\w{7,}}/code>会的。我不知道为什么两者都应该工作<代码>\w{7}
与任何行都不匹配<代码>\w{7,}将匹配。当任何字段为7个字符或更长时,该正则表达式将匹配,而不仅仅是第11个字段perl-i.bak-F,-anwe'打印,除非长度$F[10]>6'
或类似的更好。啊,是的,掩盖了第11个字段的位。更新应答器,当任何字段为7个字符或更长时,正则表达式将匹配,而不仅仅是第11个字段perl-i.bak-F,-anwe'打印,除非长度$F[10]>6'
或类似的更好。啊,是的,掩盖了第11个字段的位。更新答案
casoer@casperbox::/here/s/johnny$ perl -p -i.bak -nle 'print unless /\,\w{7}\,/' /come/and/play/with/us/danny.csv