Linux 错误q:在Vim上找不到命令
我创建了一个bash脚本: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
#!/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用于交互式编辑!非常感谢你的耐心,你帮了我很多。