编写Shell脚本,完成: 在/opt下创建一个目录sh,取/etc/profile的前1000字节保存到本目录下 head.txt,取/etc/profile的后1000字节保存到本目录下tail.txt,统计两个文件 的行数,写到wc.txt中,对结果进行排序,输出排序结果。
时间: 2024-09-20 13:12:36 浏览: 52
编写Shell脚本可以分为以下几个步骤:
1. 创建目录 `sh` 如果它不存在:
```bash
mkdir -p /opt/sh
```
2. 使用 `head` 和 `tail` 命令分别获取 `/etc/profile` 的前1000字节和后1000字节,并存入相应的文本文件:
```bash
head -c 1000 /etc/profile > /opt/sh/head.txt
tail -c +$(stat -c%s /etc/profile | awk '{print $1-1000}') /etc/profile > /opt/sh/tail.txt
```
这里我们先计算出 `/etc/profile` 文件的大小,然后从倒数第1001个字符开始截取。
3. 使用 `wc -l` 统计行数并保存到 `wc.txt` 文件:
```bash
wc -l /opt/sh/head.txt /opt/sh/tail.txt > /opt/sh/wc.txt
```
`wc -l` 命令用于计算行数,输出直接追加到 `wc.txt` 中。
4. 对 `wc.txt` 内的内容进行排序:
```bash
sort -n /opt/sh/wc.txt > /opt/sh/sorted_wc.txt
```
`sort -n` 表示按照数字进行排序。
5. 输出排序后的结果:
```bash
cat /opt/sh/sorted_wc.txt
```
完整的脚本如下:
```bash
#!/bin/bash
mkdir -p /opt/sh || exit 1
# 获取头尾部分
head -c 1000 /etc/profile > /opt/sh/head.txt
tail -c +$(stat -c%s /etc/profile | awk '{print $1-1000}') /etc/profile > /opt/sh/tail.txt
# 统计行数并排序
wc -l /opt/sh/head.txt /opt/sh/tail.txt > /opt/sh/wc.txt
sort -n /opt/sh/wc.txt > /opt/sh/sorted_wc.txt
# 输出排序结果
echo "Sorted wc result:"
cat /opt/sh/sorted_wc.txt
```
为了运行这个脚本,需要给予执行权限:
```bash
chmod +x script.sh
./script.sh
```
其中,`script.sh` 是脚本的文件名。执行完成后,你将看到排序后的行数列表。
阅读全文