相关疑难解决方法(0)

如何使用Bash迭代目录中的文件?

我需要编写一个脚本,用不同的参数启动我的程序,但我是Bash的新手.我这样开始我的程序:

./MyProgram.exe Data/data1.txt [Logs/data1_Log.txt].

这是我想要做的伪代码:

for each filename in /Data do
  for int i = 0, i = 3, i++
    ./MyProgram.exe Data/filename.txt Logs/filename_Log{i}.txt
  end for
end for
Run Code Online (Sandbox Code Playgroud)

所以我真的很困惑如何从第一个创建第二个参数,所以它看起来像dataABCD_Log1.txt并启动我的程序.非常感谢帮助.

PS我知道那里有类似的问题,但我没有发现创建我的日志文件名称.

bash filenames for-loop glob

515
推荐指数
5
解决办法
69万
查看次数

使用空格迭代文件列表

我想迭代一个文件列表.这个列表是find命令的结果,所以我想出了:

getlist() {
  for f in $(find . -iname "foo*")
  do
    echo "File found: $f"
    # do something useful
  done
}
Run Code Online (Sandbox Code Playgroud)

没关系,除非文件名中有空格:

$ ls
foo_bar_baz.txt
foo bar baz.txt

$ getlist
File found: foo_bar_baz.txt
File found: foo
File found: bar
File found: baz.txt
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能避免空格分裂?

linux bash shell

185
推荐指数
6
解决办法
9万
查看次数

循环遍历给定目录中的所有文件

这是我正在尝试做的事情:

为shell脚本提供一个参数,该脚本将在jpg,bmp,tif扩展名的所有文件上运行任务.

例如:./ doProcess/media/repo/user1/dir5

并且该目录中的所有jpg,bmp,tif文件都将运行某个任务.

我现在拥有的是:

for f in *
do
  imagejob "$f"  "output/${f%.output}" ;
done
Run Code Online (Sandbox Code Playgroud)

我需要帮助for循环来限制文件类型,并且还有一些在指定目录而不是当前目录下启动的方法.

shell

7
推荐指数
2
解决办法
5264
查看次数

循环浏览目录中的所有文件并对它们执行操作?

因此,我尝试在Mac上执行Shell脚本(.sh),但遇到了麻烦。因此,对于每个文件,我都希望对其进行复制并将其转换为另一种类型(。少到.css)。我已经知道该怎么做:

 lessc fileToConvert.less destinationOfConvertedFile.css
Run Code Online (Sandbox Code Playgroud)

现在我的问题是将其集成到一个循环中(循环一个文件夹中的所有文件)。我尝试过,但似乎没有任何效果:

alias proj="cd /Users/maxwell/Documents/WebStorm"
for /D /r %%G in * DO Echo We found %%G
Run Code Online (Sandbox Code Playgroud)

我尝试将其作为测试,但即使这样也不起作用。有任何想法吗?

shell

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

shell ×3

bash ×2

filenames ×1

for-loop ×1

glob ×1

linux ×1