使用SED命令替换CSV文件中^@模式失败,提示“Pattern not found”求助
解决SED替换^@(NULL字符)失败的问题
你看到的^@并不是字面的^和@组合,而是终端用来显示**NULL字符(ASCII 0)**的符号,所以直接用sed 's/^@/$/g'会匹配不到目标内容。以下是几种可行的解决方法:
使用GNU sed的ANSI-C转义语法直接匹配NULL字符:
sed 's/\x0/$/g' file.csv\x0是sed中代表ASCII 0字符的写法,能精准匹配你文件里的^@。在终端直接输入实际的NULL字符(适用于bash/zsh环境):
输入命令时,先按Ctrl+V,再按Ctrl+@(部分终端是Ctrl+2),这样就能插入实际的NULL字符,最终命令看起来和你原来的一样,但里面的^@是真实的ASCII 0:sed 's/^@/$/g' file.csv用tr命令替代sed(处理单字符替换更高效):
tr '\0' '$' < file.csv > new_file.csvtr会直接将文件中的NULL字符(
\0)替换为$,输出到新文件中。
内容的提问来源于stack exchange,提问作者user16308738
相关产品推荐
相关产品推荐

