使用shell 遍历一个txt文档的每一行数据 将每一行数据 去四个文件夹下匹配有没有包含这个数据名称的文件夹 并输出
时间: 2023-03-28 16:00:29 浏览: 56
可以使用以下的 shell 脚本来实现:
```
#!/bin/bash
# 遍历 txt 文件的每一行
while read line; do
# 在四个文件夹下查找包含该行数据名称的文件夹
for dir in folder1 folder2 folder3 folder4; do
if [ -d "$dir/$line" ]; then
echo "$line is found in $dir"
fi
done
done < data.txt
```
其中,`data.txt` 是包含每一行数据的 txt 文件,`folder1`、`folder2`、`folder3`、`folder4` 是需要查找的四个文件夹。脚本会遍历 `data.txt` 的每一行数据,然后在四个文件夹下查找是否有包含该行数据名称的文件夹,如果找到了,则输出该行数据在哪个文件夹中被找到了。
相关问题
使用shell 遍历四个文件夹下的文件名称 去和一个txt文档的每一行匹配 如果有则不打印 如果没有匹配到则打印到一个txt文档中
可以使用以下的 shell 脚本来实现:
```shell
#!/bin/bash
# 遍历四个文件夹下的文件名称
for file in folder1/* folder2/* folder3/* folder4/*
do
# 读取 txt 文档的每一行
while read line
do
# 如果匹配到了,则不打印
if [[ "$file" == *"$line"* ]]
then
break
fi
done < "file.txt"
# 如果没有匹配到,则打印到 txt 文档中
if [ $? -ne ]
then
echo "$file" >> "output.txt"
fi
done
```
这个脚本会遍历四个文件夹下的所有文件,然后读取一个名为 file.txt 的文本文件的每一行,将每一行的内容与文件名进行匹配。如果匹配到了,则不打印;如果没有匹配到,则将文件名输出到一个名为 output.txt 的文本文件中。
使用shell 通过遍历一个文本中的每一行数据,将另一个文件夹中包含改数据同名文件夹下的image文件改名为数据的名字 并统一移动到一个文件夹中 然后打包
您好,这是一个关于使用 shell 遍历文本并修改文件名的问题。可以使用以下命令实现:
```
while read line; do
mv /path/to/folder/$line/image.jpg /path/to/new/folder/$line.jpg
done < /path/to/textfile.txt
tar -czvf archive.tar.gz /path/to/new/folder/
```
其中,`/path/to/folder/` 是包含图片的文件夹路径,`/path/to/textfile.txt` 是包含数据名字的文本文件路径,`/path/to/new/folder/` 是新文件夹的路径,`archive.tar.gz` 是打包后的文件名。
希望这个回答能够帮到您。