Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.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
Linux 删除引用sed_Linux_Unix_Sed - Fatal编程技术网

Linux 删除引用sed

Linux 删除引用sed,linux,unix,sed,Linux,Unix,Sed,我有一个包含数千条记录的文件,每个字段用引号分隔。我基本上需要读取该行,并将删除引号的行写入一个新文件。 要使其正确运行,正确的sed命令是什么?我在我的windows计算机上安装了sed,但我保留 [输入] "First Name"|"Last Name"|"address"|"City"|"State"|"Zip" [输出] First Name|Last Name|address|City|State|Zip 我分别尝试过的命令,但都不起作用 C:\Program Files\GnuW

我有一个包含数千条记录的文件,每个字段用引号分隔。我基本上需要读取该行,并将删除引号的行写入一个新文件。 要使其正确运行,正确的sed命令是什么?我在我的windows计算机上安装了sed,但我保留

[输入]

"First Name"|"Last Name"|"address"|"City"|"State"|"Zip"
[输出]

First Name|Last Name|address|City|State|Zip
我分别尝试过的命令,但都不起作用

C:\Program Files\GnuWin32\bin>sed 's/\"//g' "C:\Users\abc\Documents\testFile.txt" > quoteOutput.txt

C:\Program Files\GnuWin32\bin>sed s/\"//g "C:\Users\abc\Documents\testFile.txt" > quoteOutput.txt"
除非是分隔符,否则不必转义

[编辑以显示如何在Windows下运行]

echo 's/"//g' > c:\Users\abc\Documents\test.sed'
sed -f c:\Users\abc\Documents\test.sed C:\Users\abc\Documents\quoteFile.txt > "C:\Users\abc\Documents\quoteFileProcessed.txt"
除非是分隔符,否则不必转义

[编辑以显示如何在Windows下运行它]

echo 's/"//g' > c:\Users\abc\Documents\test.sed'
sed -f c:\Users\abc\Documents\test.sed C:\Users\abc\Documents\quoteFile.txt > "C:\Users\abc\Documents\quoteFileProcessed.txt"

一个更简单的选择是使用
tr
(假设它包含在您安装的工具包中):

tr-d\”output.txt

一个更简单的选择是使用
tr
(假设它包含在您安装的工具包中):

tr-d\”output.txt

最好使用反斜杠在sed命令列表中引用双引号符号:

C:\tmp>cat input
"First Name"|"Last Name"|"address"|"City"|"State"|"Zip"

C:\tmp>sed "s/\"//g" input
First Name|Last Name|address|City|State|Zip

最好使用反斜杠在sed命令列表中引用双引号符号:

C:\tmp>cat input
"First Name"|"Last Name"|"address"|"City"|"State"|"Zip"

C:\tmp>sed "s/\"//g" input
First Name|Last Name|address|City|State|Zip

这个Windows解决方案怎么样?
使用escape char hat(^),管道和输出似乎可以正常工作:


这个Windows解决方案怎么样?
使用escape char hat(^),管道和输出似乎可以正常工作:


基于这个问题,他在windows命令提示符下运行这个命令,其中单引号没有特殊意义这正是他需要做的,用引号将他的脚本括起来,这样他就可以运行它而不会出现转义问题。我尝试运行以下命令,但在windows上出现错误:C:\Program Files\GnuWin32\bin>sed-e的//“//g”C:\Users\abc\Documents\testFile.txt“>”C:\Users\abc\quotesRemoved.txt“[output]sed:-e expression#1,char 1:unknown command:`''''Ok,尝试将's/“//g'放入一个文件中,并将所述文件作为
-f
参数传递给我添加行的/“//g'作为数据文件的第一行,但它不起作用。根据问题,他在windows命令提示符下运行此命令,其中单引号没有特殊意义这正是他需要做的,将他的脚本用引号括起来,这样他就可以运行它而不陷入转义问题我试图运行以下命令,但在windows上出错:C:\Program Files\GnuWin32\bin>sed-e的//“//g'”C:\Users\abc\Documents\testFile.txt“>”C:\Users\abc\quotesRemoved.txt“[输出]sed:-e表达式#1,char 1:未知命令:`'''Ok,尝试将's/“//g'放入文件中,并将所述文件作为
-f
参数传入,以添加行的/“//g”作为数据文件的第一行,但它不起作用。所有神秘的Windows引用废话都会使你瘫痪。只需安装cygwin,然后你就可以使用sed、tr、awk,而不会失去理智。@EdMorton或只使用*nix OS:)所有神秘的Windows引用废话都会让你瘫痪。只需安装cygwin,然后您就可以使用sed、tr、awk,而不会失去理智。@EdMorton或只需使用*nix操作系统:)
cat input | tr -d \^" > output