我一直在尝试编写一个脚本,它将获取当前工作目录,扫描每个文件并检查它是否为.txt文件。然后,对于每个文本文件,检查它的名称中是否包含下划线,如果是,则将下划线更改为连字符。
我知道这是一个很大的要求,但以下是我目前拥有的粗略代码:
我认为这个脚本应该将当前工作目录中的文件作为参数,检查每个文件(由$count或"count"表示)。然后对于每个文件,它会检查它是否以".txt"结尾,并且如果是的话,会使用sed将每个下划线更改为连字符。我认为我遇到的主要问题之一是脚本没有从当前工作目录读取文件。我试过在运行脚本的命令之后包含目录,但我认为它是按行而不是按文件来处理的(因为每行有4个左右的文件)。
我知道这是一个很大的要求,但以下是我目前拥有的粗略代码:
#!/bin/bash
count=1
while((count <= $#))
do
case $count in
"*.txt") sed 's/_/-' $count
esac
((count++))
done
我认为这个脚本应该将当前工作目录中的文件作为参数,检查每个文件(由$count或"count"表示)。然后对于每个文件,它会检查它是否以".txt"结尾,并且如果是的话,会使用sed将每个下划线更改为连字符。我认为我遇到的主要问题之一是脚本没有从当前工作目录读取文件。我试过在运行脚本的命令之后包含目录,但我认为它是按行而不是按文件来处理的(因为每行有4个左右的文件)。
无论如何,任何帮助都将不胜感激!另外,我很抱歉我的代码如此糟糕,我非常新于UNIX。
$count
是变量count
的值,它是一个整数。如果你想要迭代位置参数,你可以写成:for file in "$@"; do ...
或者简写为for file; do ...
。 - glenn jackman