sed的12个练习题

1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#。

cp /etc/rc.d/rc.sysinit /tmp
sed -i 's/\(^[[:space:]]\)/#\1/g' /tmp/rc.sysinit

2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符。

cp /boot/grub/grub.conf /tmp
sed -i 's/^[[:space:]]\+//g' /tmp/grub.conf

3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行的#和空白字符。

sed -i 's@^#[[:space:]]\+@@g' /tmp/rc.sysinit

4、为/tmp/grub.conf文件中前三行的行首加#号。

sed -i '1,3s@\(^.\)@#\1@g' /tmp/grub.conf

5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1

sed -i 's/enabled=0/enabled=1/g;s/gpgcheck=0/gpgcheck=1/g' /etc/yum.repos.d/CentOS-Media.repo

6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202。

crontab -e
crontab -e 0*/4*** /etc /backup/etc-$(date +%Y%m%d%H%M)

7、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402。

crontab -e
*00**2,4,6 cp -rf /var/log/messages /backup/message-$(date +%Y%m%d)

8、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中。

crontab -e
1*/2**1,2,3,4,5 grep "^S" /proc/meminfo >> /stats/memry.txt

9、工作日的工作时间内,每两小时执行一次echo“howdy”。

crontab -e
1*/2**1,2,3,4,5 echo "howdy"

10、创建目录/tmp./testdir-当前日期时间

vim test1.sh
#!/bin/bash
#
mkdir /tmp/testdir-$(date +%Y%m%d)

11、在此目录创建100个空文件:file1-file100。

vim test2.sh
#!/bin/bash
#
for i in {1..100};do
touch /tmp/testdir-201609071346/file$i
done

12、显示/etc/passwd文件中位于第偶数行的用户的用户名。

vim test3.sh
#!/bin/bash
#
sed -n 'n;p' /etc/passwd | cut -d: -f1
发布于:2019-11-14 11:22:05