7. 编写bash脚本程序,完成要求的功能。 生成测试数据: mkdir tstdir; for i in {1..3}; do echo file$i>./tstdir/file$i.txt;echo “line 2 hello ” >> ./tstdir/file$i.txt; done 编写脚本,完成以下下功能: 1)、编写脚本countfile统计 ./tstdir 下的文件数量 sh countfile 2)、编写脚本countwords统计文件./tstdir/file1.txt中每行字数 sh countwords 3)、编写脚本changecontent将./tstdir目录下所有文件内容中的小写hello改为大写HELLO cat ./tstdir/file1.txt sh changecontent cat ./tstdir/file1.txt 4)、编写脚本changename将./tstdir目录下所有文件的扩展名改为大写 ls ./tstdir -l sh changename ls ./tstdir –l 5)、编写脚本changemode将./tstdir目录中所有文件的权限设置为所有者只读,其他人无权限。 ls ./tstdir -l sh changemode ls ./tstdir –l
时间: 2024-02-21 22:56:32 浏览: 66
以下是编写的bash脚本程序:
1. countfile.sh:
```
#!/bin/bash
cd tstdir
count=$(ls -1 | wc -l)
echo "Number of files in tstdir is: $count"
```
2. countwords.sh:
```
#!/bin/bash
cd tstdir
file=./file1.txt
if [ ! -f $file ]
then
echo "$file not found"
else
while read line
do
count=$(echo $line | wc -w)
echo "Number of words in '$line' is: $count"
done < $file
fi
```
3. changecontent.sh:
```
#!/bin/bash
cd tstdir
for file in *
do
if [ -f "$file" ]
then
sed -i 's/hello/HELLO/g' $file
fi
done
echo "Content of all files in tstdir updated"
```
4. changename.sh:
```
#!/bin/bash
cd tstdir
for file in *
do
if [ -f "$file" ]
then
mv "$file" "${file%.*}".TXT
fi
done
echo "Extensions of all files in tstdir changed to uppercase"
```
5. changemode.sh:
```
#!/bin/bash
cd tstdir
for file in *
do
if [ -f "$file" ]
then
chmod 400 "$file"
fi
done
echo "Permissions of all files in tstdir changed to read-only for owner"
```
注意:以上脚本程序均需在tstdir的父目录下运行。
阅读全文