Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 通过命令行将双引号添加到csv文件的第一行_Regex_Bash_Shell_Command Line - Fatal编程技术网

Regex 通过命令行将双引号添加到csv文件的第一行

Regex 通过命令行将双引号添加到csv文件的第一行,regex,bash,shell,command-line,Regex,Bash,Shell,Command Line,我有这个csv文件,我注意到在导出过程中,它没有添加到起始报价中。事实上,在ubuntu中,如果我键入: head -n 1 file.csv 我得到这个输出: 801","40116","Hazelnut MT -L","Thursday Promo","Large","","5.9000","","801","1.0000","","3.6500","2.2500",".0000","default","","","","","Chatime","02/06/2014","09125a9c

我有这个csv文件,我注意到在导出过程中,它没有添加到起始报价中。事实上,在ubuntu中,如果我键入:

head -n 1 file.csv
我得到这个输出:

801","40116","Hazelnut MT -L","Thursday Promo","Large","","5.9000","","801","1.0000","","3.6500","2.2500",".0000","default","","","","","Chatime","02/06/2014","09125a9cfffd4143a00e73e3b62f15f2","CB01","",".0000","5.9000","6.9000",".0000",".0000",".0000",".0000",".0000",".0000","0","","0","0","0","","","","","","","","","Modern Milk Tea","","","0","","","1","0","","","","","","","","0","Hau Chan","","","","","","","","","","0","","","","","","","-1","","","","","","","","","","","","0","00000000420714AA","2014-06-02","1900-01-01","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""

是否有一些命令类型可以帮助我添加缺少的起始引号?

这应该适用于每个posix shell:

printf \" | cat - file.csv > repaired-file.csv
如果您对结果满意,可以覆盖原始内容

mv repaired-file.csv file.csv
由于您的文件是70GB大小,您可能希望避免创建第二个文件,但这比看起来更难。当然,也有类似于
sed
的inplace选项(
-i
)和
moreutils
中的
海绵
实用程序的功能,但它们并不像您预期的那样工作
sed-i
spoone
都使用临时文件或将整个文件保存在内存中(不再适用于70GB)。关于真实就地编辑的大量研究可以在中找到。结论:没有标准工具支持真正的就地编辑。但是下面的
perl
一行程序应该可以工作(已经适应了您的需要)


perl这应该适用于每个posix shell:

printf \" | cat - file.csv > repaired-file.csv
如果您对结果满意,可以覆盖原始内容

mv repaired-file.csv file.csv
由于您的文件是70GB大小,您可能希望避免创建第二个文件,但这比看起来更难。当然,也有类似于
sed
的inplace选项(
-i
)和
moreutils
中的
海绵
实用程序的功能,但它们并不像您预期的那样工作
sed-i
spoone
都使用临时文件或将整个文件保存在内存中(不再适用于70GB)。关于真实就地编辑的大量研究可以在中找到。结论:没有标准工具支持真正的就地编辑。但是下面的
perl
一行程序应该可以工作(已经适应了您的需要)


有perl,但您也可以在文本编辑器中打开该文件并手动添加引号。它是一个70gb的csv文件。我想我打不开。哦,好的。。。这改变了一切。只是想确定一下:报价单是只在第一行丢失了,还是在每一行都丢失了?就像oguz ismail一样,我假设它只在第一行中丢失,因为你只显示了那一行。@Socowi只在第一行。下一个是正确的引号。有,但你也可以在文本编辑器中打开文件并手动添加引号。这是一个70gb的csv文件。我想我打不开。哦,好的。。。这改变了一切。只是想确定一下:报价单是只在第一行丢失了,还是在每一行都丢失了?就像oguz ismail一样,我假设它只在第一行中丢失,因为你只显示了那一行。@Socowi只在第一行。接下来的是正确的引号。