【问题标题】:How to remove ^@ from text file in Linux如何在 Linux 中从文本文件中删除 ^@
【发布时间】:2020-10-14 08:54:09
【问题描述】:

我有从 MSSQL 表生成的输出文件,我正在尝试在 Linux 中使用它,但是当我从 SQL Server 运行导出数据时,它似乎带有 ^@ 垃圾字符,并且在导入时会导致问题,我们如何删除 ^@来自文本文件?

355|1|1|Build an Equipment Dashboard|build-equipment-dashboard|^@|Overview|asdf|

【问题讨论】:

  • this 回答你的问题了吗?
  • ^@ 可能是 NULL 值。您也许可以修改查询,以便如果字段为空,则将其替换为空字符串。
  • @aks :另外,为了安全起见,通过查看输出来验证这个字符的真正含义,即xxd
  • 我们如何检查这个字符是什么?
  • 试试这个:sed -i 's/\x0//g' filename - 然后再次运行od 命令,看看它是否消失了。

标签: sql-server linux bash unix


【解决方案1】:
$ echo '355|1|1|Build an Equipment Dashboard|build-equipment-dashboard|^@|Overview|asdf|' | sed -E 's/\^@//'
355|1|1|Build an Equipment Dashboard|build-equipment-dashboard||Overview|asdf|

man sed ... -E 表示扩展正则表达式。 ^ 必须用 \ 转义。

对于文本文件的调用,扩展 sed-command 并使用 -i 就地选项。

sed -Ei 's/\^@//' yourtextfile

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 2021-08-31
    相关资源
    最近更新 更多