Ric*_*ron 5 text-editing vim sed escape-characters
我通常将数据从 csv 文件导入 MySQL,但我的数据提供程序将 NULL 条目保留为“”,因此我需要将“”替换为“\N”。这很容易使用类似的脚本
for csvfile in *.csv
do
sed -i -e 's/^,/\\N,/' -e 's/,$/,\\N/' -e 's/,,/,\\N,/g' -e 's/,,/,\\N,/g' $csvfile
done
Run Code Online (Sandbox Code Playgroud)
但是,我有一个带逗号的 csv 文件,因此导入失败。我将文件设为“制表符分隔”并尝试
for txtfile in *.txt
do
sed -i -e 's/^\\t/\\N\\t/' -e 's/\\t$/\\t\\N/' -e 's/\\t\\t/\\t\\N\\t/g' -e 's/\\t\\t/\\t\\N\\t/g' $txtfile
done
Run Code Online (Sandbox Code Playgroud)
但它仍然失败(据我所知,脚本没有添加任何“\N”)。当我在 Vim 中打开制表符分隔的文件并键入时,:set list它看起来像是制表符存储为“^I”。我尝试用“\^I”替换“\t”,但没有添加我需要的“\N”空字符。
有任何想法吗?谢谢!