Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 错误q:在Vim上找不到命令_Linux_Vim_Command - Fatal编程技术网

Linux 错误q:在Vim上找不到命令

Linux 错误q:在Vim上找不到命令,linux,vim,command,Linux,Vim,Command,我创建了一个bash脚本: #!/bin/bash su root -c vim $1 -c ':%s/^M//g' -c 'wq' 我的脚本必须删除文件中的所有^M(Windows回车),然后保存它 当我执行脚本时,它返回: /sequenceFiles/Sequence1.seq: wq: command not found 有人知道为什么吗? 谢谢你的帮助。曼苏说: `-c COMMAND' `--command=COMMAND' Pass COMMAND, a singl

我创建了一个bash脚本:

#!/bin/bash 
su root -c vim $1 -c ':%s/^M//g' -c 'wq'
我的脚本必须删除文件中的所有^M(Windows回车),然后保存它

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

/sequenceFiles/Sequence1.seq: wq: command not found
有人知道为什么吗?
谢谢你的帮助。

曼苏说:

`-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.
试一试


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.
试一试


-c
su
看到,而不是
vim
,shell抱怨未知命令

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

su root -c "vim $1 -c ':%s/^M//g' -c 'wq'"

-c
su
看到,而不是
vim
,shell抱怨未知命令

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

su root -c "vim $1 -c ':%s/^M//g' -c 'wq'"

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

perl -pi -e 's/\r\n/\n/' file

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

perl -pi -e 's/\r\n/\n/' file

有一个包裹叫。。使用此软件包中的
fromdos
。您可能还有类似
dos2unix
的UTIL。有一个名为。。使用此软件包中的
fromdos
。您可能还有类似
dos2unix
的UTIL。现在,我遇到了一个问题:当我执行脚本时,它会返回以下错误:E486:找不到模式。但是^M出现在我的文件中。为什么?Vim(在Unix上)可以检测和处理CR-LF行结束符,请参见
:help'fileformat'
,这就是为什么没有显示
^M
,这也解释了E486。您的问题是关于su+Vim调用错误的,因此请不要拒绝,并将其转化为一个长时间的故障排除会话!正如评论所证明的,无论如何,你不应该使用Vim。那么,我应该使用什么呢?Vi替代?我会使用DOS中提到的
/
dos2unix
(如果你有/可以安装它们),否则
sed
(它的
s///
几乎是相同的;如果你不确定,谷歌会提供一个解决方案);vi/Vim用于交互式编辑!非常感谢您的耐心,您帮了我很多。现在,我遇到了一个问题:当我执行脚本时,它会返回以下错误:E486:找不到模式。但是^M出现在我的文件中。为什么?Vim(在Unix上)可以检测和处理CR-LF行结束符,请参见
:help'fileformat'
,这就是为什么没有显示
^M
,这也解释了E486。您的问题是关于su+Vim调用错误的,因此请不要拒绝,并将其转化为一个长时间的故障排除会话!正如评论所证明的,无论如何,你不应该使用Vim。那么,我应该使用什么呢?Vi替代?我会使用DOS中提到的
/
dos2unix
(如果你有/可以安装它们),否则
sed
(它的
s///
几乎是相同的;如果你不确定,谷歌会提供一个解决方案);vi/Vim用于交互式编辑!非常感谢你的耐心,你帮了我很多。