2.编写一个shell脚本,读取指定目录下的所有可读的普通文件,将这些文件内容依次写入该目录下的total.txt文件中。
时间: 2024-10-08 17:17:54 浏览: 112
要编写一个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`即可。
阅读全文