编写一个 shell 脚本,读取指定目录下的所有可读的普通文件,将这些 文件内容依次写入该目录下的total.txt文件中
时间: 2024-10-11 17:12:12 浏览: 81
你可以编写一个简单的bash shell脚本来完成这个任务。下面是一个示例脚本:
```bash
#!/bin/bash
# 指定源目录
source_dir="/path/to/source/directory"
# 目标文件名
output_file="total.txt"
# 验证目标文件是否已经存在,如果不存在则创建
if [ ! -f "$output_file" ]; then
touch "$output_file"
fi
# 使用find命令查找指定目录下所有可读的普通文件
# +type f 仅选择普通文件
# -perm +r 只选择权限为可读的文件
readable_files=$(find "$source_dir" -type f -perm +r)
# 循环遍历找到的文件,并追加到total.txt中
for file in $readable_files; do
echo "Reading from $file..."
# 将文件内容追加到output_file
cat "$file" >> "$output_file"
done
echo "All files have been appended to $output_file."
#
相关问题
2.编写一个shell脚本,读取指定目录下的所有可读的普通文件,将这些文件内容依次写入该目录下的total.txt文件中。
要编写一个Shell脚本来实现这个功能,你可以参考下面的示例。假设你想读取当前目录`./`下的所有可读普通文件(非隐藏文件),并将它们的内容合并到`total.txt`中,可以创建一个名为`merge_files.sh`的文件,并添加以下内容:
```bash
#!/bin/bash
# 指定目标输出文件
OUTPUT_FILE=total.txt
# 检查目标文件是否已存在,若不存在则创建
[ ! -f $OUTPUT_FILE ] && touch $OUTPUT_FILE
# 遍历指定目录及其所有子目录中的可读文件
for FILE in $(find . -type f -name "*" -perm 640); do
# 确保只有普通文件才会被处理
if [ "$FILE" != "./$OUTPUT_FILE" ]; then
# 将文件内容追加到总文件中
cat $FILE >> $OUTPUT_FILE
echo "Appended content from file: $FILE"
fi
done
echo "All contents have been merged into $OUTPUT_FILE."
```
在这个脚本中,`find`命令用于查找指定目录下的所有文件(`-type f`),并过滤出可读的普通文件(`-perm 640`)。`cat`命令用于逐个合并这些文件的内容到`total.txt`中。
要运行此脚本,确保它有执行权限,然后在命令行输入`./merge_files.sh`即可。
编写一个shell脚本,读取指定目录下的所有可读的普通文件,将这些文件内容依次写入该目录下的total.txt文件中
要编写一个shell脚本,用于读取指定目录下的所有可读的普通文件并将它们的内容合并到`total.txt`文件中,你可以使用下面的步骤:
```bash
#!/bin/bash
# 指定要读取的目录
dir_to_read="/path/to/your/directory"
# 检查目录是否存在
if [ ! -d "$dir_to_read" ]; then
echo "指定的目录不存在!"
exit 1
fi
# 创建total.txt如果它不存在
touch total.txt
# 使用find命令查找目录下的可读文件
# -type f 代表文件
# -perm -r 代表只读权限
files=$(find "$dir_to_read" -type f -perm -r)
# 如果找到文件
if [ -n "$files" ]; then
# 遍历每个文件,逐行追加到total.txt中
for file in $files; do
content=$(cat "$file")
echo "$content" >> total.txt
done
echo "所有文件的内容已追加到total.txt中."
else
echo "未找到可读的文件."
fi
#
阅读全文