如何在Mac终端中从文件中删除一个字符串

4

我有一个文件,包含一百万条记录,每行末尾都以 SYSTEM;\N 结束。

我想从文件中删除所有的 ;\N 出现。我该如何解决这个问题?


请展示你的文件中的3-4行以及你尝试过的代码。 - Mark Setchell
2个回答

4
您可以使用sed命令将文件中所有出现的“;\N”替换为“”。
sed -i 's/original/new/g' file.txt

解释:

sed = 流编辑器

-i = 原地操作(即将更改保存回原始文件)

命令字符串: s = 替换命令

original = 描述要替换的单词的正则表达式(或者只是单词本身)

new = 要替换的文本

g = 全局匹配(即替换所有出现的而不仅仅是第一次出现)

file.txt = 文件名


sed -i 's/;\N//g' test112.csv 在终端上无法工作。 - user842122

1

最终这个命令行起作用了:sed -i '' 's/;\\N//g' test112.csv


使用-i似乎是一个糟糕的想法。sed将把您的数据写入临时文件,因此如果磁盘空间是一个问题,这并不能避免这个问题。如果您的磁盘空间用尽了,使用-i会导致一些数据被截断吗?只需执行sed 's/;\\N/g' test112.csv > test112.out。然后确保它起作用了。然后执行mv test112.out test112.csv - William Pursell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接