小编CJ *_*nis的帖子

vi中如何去掉回车符

我有一个文件由于末尾的单个回车符 (0x0D) 而失败。它最初是一个回车/换行组合(0x0D,0x0A)。我试过了:

  • 在 INSERT 模式下删除它(删除最后一个打印字符并保留回车符)
  • %s/\r//( E486: Pattern not found: \r)
  • %s/^M//(Ctrl+V, Ctrl+M 得到^M) ( E486: Pattern not found: ^M)
  • J 加入下一行(似乎对最后一行没有任何作用)

所有这些都保留回车符。

我怎样才能从内部vi(不是vim)摆脱这个角色?

编辑

现在看来,每当我保存文件时,它都会添加一个新行字符(0x0A)。所以,0x0D 消失了,但我的文件末尾仍然有一个无效字符。

我尝试添加两个空行以查看它是否会添加 0x0A 或 0x0D、0x0A(我使用的是 Windows 中的 PuTTY)并添加了两个 0x0A 字符,总共三个。

如果你有三行,你不应该只需要两个行分隔符吗?

  • %s/\n// (没有错误,但不会删除字符)

vi

4
推荐指数
1
解决办法
2万
查看次数

如何匹配 bash 正则表达式中的任何字符?

在 bash 脚本中,为什么

message='123456789'
echo "${message//[0-9]/*}"
Run Code Online (Sandbox Code Playgroud)

展示*********

message='123456789'
echo "${message//./*}"
Run Code Online (Sandbox Code Playgroud)

显示123456789

我见过的所有文档都说.匹配正则表达式中的任何字符,甚至在 bash 中,但它对我不起作用。如何匹配 bash 中的任意字符?

bash scripts regex

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×1

regex ×1

scripts ×1

vi ×1