4、下载 vsftpd.conf 至/root,过滤该文件中,所有非注释行(不包括空行),并且 YES 结尾的内容导出至/root/ftp.txt 中
时间: 2024-09-29 08:08:11 浏览: 42
要在Linux环境下使用bash脚本完成这个任务,可以编写一个简单的sed命令结合grep和awk工具。首先,确保已经安装了基本的文本处理工具,如sed、grep和awk。以下是步骤:
1. 创建一个临时文件,用于存储过滤后的内容:
```bash
temp_file=$(mktemp)
```
2. 使用sed过滤掉非注释行(即行首不是`#`)和空行,同时保留`YES`结尾的内容:
```bash
sed '/^#/d; /^$/d; $~s/.*//; /^[^ ]*YES$/!d' /usr/local/etc/vsftpd.conf > $temp_file
```
这里`/^#/d`删除注释行,`/^$/d`删除空行,`$~s/.*//`移除每行除了最后一部分之外的所有内容(假设`YES`总是出现在一行的末尾),`^[^ ]*YES$/!d`保留只有`YES`结尾的行。
3. 将结果导出到指定的文件中:
```bash
grep -o 'YES' $temp_file > /root/ftp.txt
rm $temp_file
```
这里使用`grep -o`提取包含`YES`的行,并将其写入`/root/ftp.txt`。
4. 最后,确认`ftp.txt`文件已成功创建:
```bash
ls /root | grep ftp.txt
```
如果能看到`ftp.txt`并且内容包含`YES`,说明操作成功。
完整脚本示例:
```bash
#!/bin/bash
temp_file=$(mktemp)
sed '/^#/d; /^$/d; $~s/.*//; /^[^ ]*YES$/!d' /usr/local/etc/vsftpd.conf > $temp_file
grep -o 'YES' $temp_file > /root/ftp.txt
rm $temp_file
ls /root | grep ftp.txt
```
运行这个脚本即可完成任务。
阅读全文