重定向和管道练习题
1、将/etc/issue
文件中的内容转换为大写后保存至/tmp/issue.out
文件中
答案(两种方法):
解析:
第一种方法用的输入输出重定向,是把/
etc/issue
文件作为tr命令的输入,然后输出到/tmp/issue
; 第二种方法是用的管道和输出重定向,把cat
命令的输出,作为tr命令的输入,然后结果输出到/tmp/issue
2、将当前系统登录用户的信息转换为大写后保存至
/tmp/who.out
文件中答案:
1 who |tr 'a-z' 'A-Z' > /tmp/who.out解析:
who
输出的登录信息,作为tr
命令的输入,然后tr
命令的输出重定向到/tmp/who.txt
文件
3、一个linux用户给
root
发邮件,要求邮件标题为”help”
,邮件正文如下:
Hello, I am 用户名,The system version is here,please help me to check it ,thanks!
操作系统版本信息
答案:
1234 cat <<EOF | mail -s help root>Hello, I am $USER,The system version is here,please help me to check it ,thanks!>My OS is `cat /etc/centos-release`>My OS's Kernel is `uname -a`解析:
先用
cat <<EOF
来把下面行的输入信息 输出出来,作为后面mail命令的输入。
4、将
/root/
下文件列表,显示成一行,并文件名之间用空格隔开答案:
1 ls -1 |tr '\n' ' '解析:
ls
显示所有文件行,用tr命令把尾部的\n
替换成空格
5、计算
1+2+3+..+99+100
的总和答案:
1 echo {1..100} |tr ' ' '+' |bc解析:
echo输出100个数,然后把中间的空格转化为加号,然后再传给bc计算
6、删除Windows文本文件中的
‘^M’
字符答案:
1 cat windows.txt |tr -d "\r"解析:
7、处理字符串“
xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4
”,只保留其中的数字 和空格答案:
1 echo “xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4” | tr -d "^0-9 "解析:
-d选项是delete的意思,^是非的意思,0=9是数字,后面跟一个空格,组合起来就是非数字和空格,然后-d删除
8、将
PATH
变量每个目录显示在独立的一行答案:
1 echo $PATH | tr ":" "\n"解析:
冒号转化为换行
9、将指定文件中
0-9
分别替代成a-j
答案:
1 tr "0-9" "a-j" file解析:
略
10、将文件中每个单词(由字母组成)显示在独立的一行,并无空行
答案:
1 cat 1.log |tr -c 'a-zA-Z' '\n'解析:
cat命令的输出,作为tr命令的输入,-c选项是选择补集,即不是字母的单词