使用 sed
如何用 NULL 替换 \N
我怎样才能替换空白空间|| 与 NULL。
|200|0||0|\N||^A|0|\N||
期望的输出
|200|0|NULL|0|NULL|NULL|^A|0|NULL|NULL|
你需要一个稍微修改的版本。像这样的东西适用于 GNU sed:
sed ':a; s:|\(\\N\)\?|:|NULL|:g; ta'
或更便携:
sed -e ':a' -e 's:|\(\\N\)\?|:|NULL|:g' -e 'ta'
我认为您正在寻找的命令可能称为“tr”。尝试
tr \\n \\0
用 awk
awk 'gsub("\\\\N","NULL");gsub("\\|\\|","|NULL|")' temp.txt
<file sed 's/\\N/NULL/g' | awk -F\| '{for(i=2;i<=NF;i++){ if($i==""){ printf "|NULL"} else{ printf "|%s", $i}}; printf "|\n"}'
sed -i 's/ /NULL/g' temp.txt
这会将任何空格字符替换为NULL
.