【发布时间】:2017-08-16 19:25:22
【问题描述】:
我有一个包含数百万条记录的文件,每行以SYSTEM;\N 结尾。
我想从文件中删除所有出现的;\N。我该如何处理?
【问题讨论】:
-
请显示文件的 3-4 行以及您尝试过的代码。
我有一个包含数百万条记录的文件,每行以SYSTEM;\N 结尾。
我想从文件中删除所有出现的;\N。我该如何处理?
【问题讨论】:
您可以使用 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
【讨论】:
-i 似乎是个糟糕的主意。 sed 会将你的数据写入一个临时文件,所以如果磁盘空间是一个问题,这并不能避免这个问题。如果您确实用完了磁盘,使用-i 会导致某些数据被截断吗?只需执行sed 's/;\\N/g' test112.csv > test112.out。然后确保它有效。然后做mv test112.out test112.csv。