我已经在Windows 11上安装了WSL Ubuntu 20.04。我试图运行以下文件:

问题描述 投票:0回答:0
bash delfile.sh test.txt I

where delfile.sh是shell脚本,test.txt是文本文档,“ i”是删除整个行的单词。
test.txt中的文字为:

Hello Friend! My Good Name Is Johnny Jack. I come from the planet Earth and I live in Italy. I like Pasta.

每次运行代码,我将获得以下输出:
Delete Lines that contain Given Word:
Before Deletion:
cat: 'test.txt'$'\r': No such file or directory
: No such file or directory

After Deletion:
Hello Friend!
My Good Name Is
Johnny Jack.
I come from the
planet Earth
and I live in Italy.
I like Pasta.

您可以看到,最后一个cat $ 1能够打印文件的内容,但是即使所有文件都在同一文件夹中,第一个cat和sed命令即使所有文件都会给出“否此类文件或目录”的错误。

i我尝试在另一个系统上运行相同的设置,并且在那里工作正常,但是在我经常使用的设置上不使用。我尝试了

sed -i 's/\r//' text.txt 

将ASCII文本带有CRLF线终结器将其转换为ASCII文本,但这也没有用。我在Internet上发现的所有解决方案都表明,问题与Windows和Linux的处理方式不同,但是看到该代码在另一个系统上运行得很好,最后一个CAT命令也有效,我怀疑那是案件

如果Shell文件仅包含
sed -i.bak "/$2/d" "$1"
,则我的文件被编辑并且包含“ i”的行被删除,但是一旦另一个CAT $ 1到达,最后一个将执行最后一个,并且上述文件会出现错误。

如果任何人都可以帮助解决这个问题,这将不胜感激。

最有可能您的外壳脚本在命令中具有CR或空格失败(第一个
cat

用“ vi” - 键入您的脚本 - 并执行“设置列表”。


shell ubuntu windows-subsystem-for-linux cat
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.