如何从文本文件中删除特定符号的所有实例?


13

我有一个巨大的(大约一半的GiB,不可能在其上使用常规的文本编辑器)CSV文件,其中的字段用双引号括起来,"abc","def"但需要一个不带引号的文件(我相信这不会破坏文件的一致性-永远不要在其中的值中使用逗号)。

如何删除所有引号(不在其位置引入空格)?

Answers:


21

tr 可以做到:

tr -d \" < infile > outfile

您还可以使用sed

sed 's/"//g' < infile > outfile

1
为什么要删除< infile > outfile?恕我直言,这是更有益的。
伊万

@Ivan我认为这可能是第二个想法所隐含的。
克里斯·

仅适用于有经验的命令行用户。即使我曾经使用<过几次(将SQL脚本导入MySQL和SQLite),对于我来说,<在这种情况下也应该立即使用。我认为最好返回完整的命令行示例,以进一步参考可能需要它的人员。
伊万

@Ivan和@Chris,我已将其还原(待审核)以包括< infile > outfile,希望可以。
donothing成功地

谢谢,@donothingsuccessally。我完全打错了先前的评论,很遗憾我无法编辑它%-]
Ivan

5

sed命令的另一个版本:

sed -i s/\"//g file.txt
  • sed 小号 tream itor

    • -i n位(就地编辑文件)
    • s小号 ubstitute命令
    • /replacement_from_reg_exp/replacement_to_text/ 声明
    • \"引号前加反斜杠(replace_from_reg_exp
    • 斜线delemiters之间空字符串(replacement_to_text
    • g g lobal(用于替换所有出现的行)
  • file.txt 文件名

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.