Linux 替换 M字符 方法,为什么"脚本"命令生成^ [和^ M个字符以及如何使用vim搜索和替换它们?...

pfnuesel..

6

^M并且^[是控制字符.正如您已经正确指出的那样,它们是一个字符,而不是两个字符,您可以通过按下Ctrl+V然后Ctrl+[获取来在vim中键入它们^[.

因此,您正在寻找的替换命令看起来像s/^[//gc,与您尝试过的唯一不同的是,您无法按^[字面输入.

^M是CR(回车符).有一些命令dos2unix可以摆脱这些角色.vim还有一些内置函数来摆脱它们.

^[另一方面,是一个色彩控制角色.在bash中你可能得到一个彩色输出,在vi​​m中你只能看到控制字符.

实际上,我在使用时会看到相同的控制字符script.其他人已经指出这种行为是预期的,我找不到一种直接的方法来规避它,所以我写了一个包装脚本:

#!/usr/bin/env bash

### Set the variable typescript to the last positional parameter passed to script

typescript="${!#}"

### If the last positional parameter is an option (and starts with "-"),

### set typescript to "typescript" (standard argument of script)

if [[ "${!#:0:1}" == "-" ]]; then

typescript="typescript"

fi

### Invoke /usr/bin/script with all options passed to the wrapper script

/usr/bin/script $@

### Once script has finished, call dos2unix to get rid of control characters

dos2unix "$typescript"

将这些行写入一个名为script的文件中,并将其放在$PATH变量之前的目录中/usr/bin(在我的例子中~/bin).如果您现在键入type script,它应该指向您的包装脚本,而不是/usr/bin/script.当你现在键入时script,它将调用包装器脚本,而脚本脚本又调用/usr/bin/script和dos2unix.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值