1

我试图用“\t”查找并替换所有“^A”字符,以便可以将数据导入 mysql 数据库。我在 OSX 上使用的命令是:

sed -i '' 's/^A/\t/' item_info_20130203 > item_info_20130203_tab

这只是删除文件中的所有内容。我哪里错了?

4

2 回答 2

3

该命令实际上应该是这样的:

sed 's/'`echo "\001"`'/\t/g' item_info_20130203 > item_info_20130203_tab

或更现代的方式

sed 's/'$(echo "\001")'/\t/g' item_info_20130203 > item_info_20130203_tab

或影响原始文件:

sed -i 's/'`echo "\001"`'/\t/g' item_info_20130203

如果你使用的是 GNU sed,你可以使用这个:

sed -i 's/\x01/\t/g' item_info_20130203
于 2013-02-12T20:39:45.453 回答
0

根据这篇文章,sed 的 -i 选项查找/替换原始文件中的文本,因此> item_info_20120203_tab命令末尾的语法是 NOP,因此输出文件为空。

于 2013-02-12T20:32:05.040 回答