1

我创建了一个 bash 脚本:

#!/bin/bash 
su root -c vim $1 -c ':%s/^M//g' -c 'wq'

我的脚本必须删除文件中的所有 ^M(Windows 上的回车符),然后保存。

当我执行我的脚本时,它返回:

/sequenceFiles/Sequence1.seq: wq: command not found

有人知道为什么吗?谢谢你的帮助。

4

3 回答 3

3

-cis seen by , sunot vim,并且 shell 抱怨未知命令。

您需要将命令作为一个参数传递给su

su root -c "vim $1 -c ':%s/^M//g' -c 'wq'"
于 2013-06-12T10:11:47.150 回答
1

man su说:

`-c COMMAND'
`--command=COMMAND'
     Pass COMMAND, a single command line to run, to the shell with a
     `-c' option instead of starting an interactive shell.

尝试

su root -c "vim $1 -c ':%s/^M//g' -c 'wq'"
于 2013-06-12T10:07:38.387 回答
0

虽然你可以用 vim 来做,但考虑更简单:

perl -pi -e 's/\r\n/\n/' file
于 2013-06-15T13:46:22.223 回答