【发布时间】:2024-04-28 05:30:02
【问题描述】:
我一直在尝试编写一个脚本,它将获取当前工作目录,扫描每个文件并检查它是否是 .txt 文件。然后获取每个文件(即文本文件),并检查其名称中是否包含下划线,是否将下划线更改为连字符。
我知道这是一项艰巨的任务,但这是我目前掌握的粗略代码:
#!/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 ...