我无法使用 ex (VIM) 运行 shell 脚本?

我无法使用 ex (VIM) 运行 shell 脚本?

$ ex -sc $'%s/\r$//e|x' file从终端完美运行,但是当我尝试使用.sh脚本运行它时,它只是忽略了之后的行ex

$ rm ~/Desktop/projectautomate/finalutf81.csv    
$ rm ~/Desktop/projectautomate/finalutf8.csv

$ cat ~/Desktop/projectautomate/headersutf8.csv ~/Desktop/projectautomate/upload.csv >> ~/Desktop/projectautomate/finalutf8.csv


$ iconv -f utf-16 -t utf-8 ~/Desktop/projectautomate/finalutf8.csv -o ~/Desktop/projectautomate/finalutf81.csv -c
$ ex -sc $'%s/\r$//e|x' ~/Desktop/projectautomate/finalutf81.csv

一切都正常,但最后一行命令不行。我基本上是想从文件 finalutf8.csv 中删除 CRLF(行尾控制字符)。如果能提供一些详细的解释就更好了。如果不清楚,因为英语是我的第二语言,我会尽量解释一下。

答案1

这些是做什么$用的?

#!/bin/sh
ex -sc '%s/\r//e|x' toto.txt

似乎按照你想要的方式工作。

答案2

$''只是 bash 的事情;shell 脚本可能正在使用 sh 或 dash 执行。将

#!/bin/bash

在第一行。

相关内容