我有一个名为的文件TempsModel.txt
,其创建方式如下:
ls /media/Elise/2811226E69F71131/ModelOutput/* > TempsModel.txt
所以它列出了该目录中的所有文件。这些文件都是压缩的 netcdf 文件,所以看起来像这样:
/media/Elise/2811226E69F71131/ModelOutput/20091201_000000.nc.gz
/media/Elise/2811226E69F71131/ModelOutput/20091201_002023.nc.gz
/media/Elise/2811226E69F71131/ModelOutput/20091201_003009.nc.gz
/media/Elise/2811226E69F71131/ModelOutput/20091201_004020.nc.gz
我需要这个列表不包含.gz
. 如何删除这三个字符?我尝试了使用 shell 脚本中的字符串操作删除字符串的最后一个字符和从行中删除最后一个字符的问题
但是如何创建TempsModel2.txt
列表不包含最后三个字符的第二个文件?
使用创建该文件可能不是最佳实践,
ls
但鉴于您提供的示例输入,您可以使用awk
:sed
:为了在没有 .gz 扩展名的情况下创建初始文件,您可以执行以下操作:
你也可以这样做:
如果 zsh 可用,则类似于此Using parameter expansion to generate arguments list for
mkdir -p
,您可以使用 glob 限定符即时删除后缀: