我创建了一个bash脚本:
#!/bin/bash
su root -c vim $1 -c ':%s/^M//g' -c 'wq'
我的脚本必须删除我文件上的所有^ M(在Windows上回车),然后保存。
当我执行我的脚本时,它返回:
/sequenceFiles/Sequence1.seq: wq: command not found
有人知道为什么吗? 谢谢你的帮助。
答案 0 :(得分:3)
-c
看到su
,而不是vim
,并且shell会抱怨未知命令。
您需要将命令作为一个参数传递给su
:
su root -c "vim $1 -c ':%s/^M//g' -c 'wq'"
答案 1 :(得分: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'"
答案 2 :(得分:0)
虽然您可以使用vim进行操作,但请考虑更简单:
perl -pi -e 's/\r\n/\n/' file