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