Linux课堂作业3(课后题)

1、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中

[[email protected] ~]# cat /etc/issue | tr ‘a-z‘ ‘A-Z‘ > /tmp/issue.out
[[email protected] ~]# cat /tmp/issue.out 
\S
KERNEL \R ON AN \M
HTTP://WWW.MAGEDU.COM
TTY IS \L
HOSTNAME IS \N
CURRENT TIME IS \T

2、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中

[[email protected] ~]# who | tr ‘a-z‘ ‘A-Z‘ > /tmp/who.out
[[email protected] ~]# cat /tmp/who.out 
ROOT     PTS/0        2016-07-29 09:28 (10.1.250.82)
ROOT     PTS/1        2016-07-29 09:48 (10.1.250.82)
ROOT     PTS/2        2016-07-29 10:52 (10.1.250.82)

3、一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:
Hello, I am 用户名,the system version is here,pleasehelp me to check it ,thanks!
操作系统版本信息

[[email protected] ~]$ mail -s help root < mail.txt 
[[email protected] ~]$ cat mail.txt 
Hello, I am xiaoshui,the system version is here,pleasehelp me to check it ,thanks!
LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID:    CentOS
Description:    CentOS Linux release 7.2.1511 (Core) 
Release:    7.2.1511
Codename:    Core

刚开始以为可以使用` `进行命令引用,然后发现使用后发现还是原来的字符

4、将/root/下文件列表,显示成一行,并文件名之间用空格隔开

[[email protected] /]# ls / | xargs
bin  boot  dev  etc  f1  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  test  testdir  tmp  usr  var

5、file1文件的内容为:”1 2 3 4 5 6 7 8 9 10” 计算出所有数字的总和

[[email protected] ~]# cat file1 | tr ‘ ‘ ‘+‘ | bc
55
[[email protected] ~]# let s=0;for i in `cat file1` ;do  s=$[$i+$s] ;done ; echo "sum=$s"
sum=55

网上还看到一种是用echo 1 2 3 4 5 6 7 8 9 10| xargs -n1 | echo $[ $(tr ‘\n‘ ‘+‘) 0 ]的,结果是正确的,最后一点tr ‘\n‘ ‘+‘不明白什么意思

6、删除Windows文本文件中的‘^M‘字符

[[email protected] ~]# cat m.txt | tr -d ‘\r\n‘ > newm.txt

7、处理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的数字和空格

[[email protected] ~]# tr -d "[[:punct:]]|[[:alpha:]]" < grep.txt
 1 2 3 4
[[email protected] ~]# cat grep.txt 
xt.,l 1 jr#!$mn2 c*/fe3 uz4
[[email protected] ~]# grep  -E -o  "[[:space:]]|[[:digit:]]" grep.txt
 
1
 
2
 
3
 
4
[[email protected] ~]# grep  -E -o  "[[:space:]]|[[:digit:]]" grep.txt | cat -A
 $
1$
 $
2$
 $
3$
 $
4$

使用grep但是会出现换行的情况,但是确实也按要求提取到了

8、将PATH变量每个目录显示在独立的一行

[[email protected] ~]# echo $PATH | tr ‘:‘ ‘\n‘
/usr/lib64/qt-3.3/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin
[[email protected] ~]# echo $PATH | xargs -d: -n1
/usr/lib64/qt-3.3/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin
[[email protected] ~]# echo $PATH | grep -E -o  "/?[[:alnum:]]*/?[[:alnum:]]*/[[:alnum:]]+\-?[[:alnum:]].?[[:alnum:]]+/[[:alnum:]]+:?" | tr -d ‘:‘
/usr/lib64/qt-3.3/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin

第三种同样使用正则表达式,最后去掉冒号还是用的tr命令,因为刚刚预习到正则,虽然麻烦,就当做练习吧

9、删除指定文件的空行

[[email protected] ~]# tr -s ‘\n‘ < emout.txt
hello   nihao
hahah
how are you
how old are you
[[email protected] ~]# cat emout.txt
hello   nihao

hahah

how are you
how old are you
[[email protected] ~]# sed -i ‘/^$/‘d emout.txt
[[email protected] ~]# cat emout.txt
hello   nihao
hahah
how are you
how old are you

tr -s 只是去掉空行显示出来,但是并没有真正的删除空行,使用sed却是可以

10、将文件中每个单词(字母)显示在独立的一行,并无空行

[[email protected] ~]# grep -E -o "\<[[:alpha:]]+\>" al.txt
xiao
shui
nihao
ni
haha
ni
txt
j
moring
father
mother
[[email protected] ~]# cat al.txt 
xiao shui nihao+++ni haha
ni.txt
j 3 2 num23mo
moring
father mother

刚开始也想用tr命令将空格转换为\n,但是数字也会出现,所以就没有使用

时间: 2024-10-15 20:16:08

Linux课堂作业3(课后题)的相关文章

Linux课堂作业2(inode工作原理以及软硬连接的区别)

inode工作原理: 一个文件包括元数据和数据内容,元数据存放在inode table中,而数据内容存放在block块中,inode存放着各个文件的元数据条目,其内容包括,一些基本的元数据比如mode,ownership,sizetimestamp,还存放着指向数据的指针,这些指针分为直接指针和间接指针,双重间接指针甚至三种间接指针.直接指针代表直接指向数据内容的block块,间接指针下一层指向虽然是一个数据块,但是数据块内却不是文件的数据内容,而是一个指针数据块,如果块大小为4k,每个指针占4

[原创] linux课堂-学习笔记-目录及概况

本学习笔记基于:网易云课堂-linux课堂 课时1Centos 6.4安装讲解46:14 课时2Centos 6.4桌面环境介绍与网络连接04:30 课时3 Linux目录结构介绍及内核与shell分析37:19 课时4 Linux获得帮助_网络配置_合理关机64:23 课时5 Linux文件权限详解45:47 课时6Linux文件权限详解45:47 课时7目录显示个性操作与全局环境变量的使用与注意···43:25 课时8复制与远程复制_文件查找实例_文件内容查看的··57:49 课时9Linu

软件工程概论课堂作业3

题目:返回一个整数数组中最大子数组的和 要求: 输入一个一维整形数组,数组里有正数也有负数. 一维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值. 设计思想: 用户自定义数组长度并依次输入数组元素,设一个全局变量初始化为零的数组a[N],N=10000: 1.因为该数组首尾相接可视作一个环,那么我们需要在一个合适的位置断开,把数组元素展成一条笔直的带子. (1).设用户自定义数组长度为m,输入数组各元素值a[1

《算法导论》读书笔记--第三章函数的增长 课后题

本章的课后题看一下即可,比较平凡. 3.1渐近记号 引用一下别人的答案,非常感谢: 原文地址:http://www.cnblogs.com/timebug/archive/2010/03/25/1694286.html |概念回顾| 当输入规模大到使只有运行时间的增长量级有关时,就使在研究算法的渐进效率. 几个重要渐进记号的定义: Θ(g(n))={ f(n): 存在正常数c1,c2和n0,使对所有的n>=n0,有0<=c1g(n)<=f(n)<=c2g(n) } O(g(n))=

C++ Primer 第五版 部分课后题答案

当时刚学C++的时候买了这本书,一开始前面看的一知半解,索性就先缓缓,等学完学校的C++课程(中途自己也写了不少c++的代码),一段时间之后又拿起这本书去看,感觉还是挺有滋味的,这本书对我印象中的C++做了很大的扩展,个人认为这本书不太适合刚学C++就去看,而是写了一定的代码,对C++有一个大体的了解之后再去看会很有味道.在看书的过程中自己也写了上面的课后练习题,现在整理一下,也跟大家分享一下,下面是9~12 15~16章的课后题编程题的答案 (第八章之前的都没保存/(ㄒoㄒ)/~~): 当时保

软件工程课堂作业04

软件工程课堂作业04 源代码: 1 package jian; 2 import java.io.*; 3 import java.util.Scanner; 4 public class Point3D{ 5 public static int Lenght(int list[],int lenght) 6 { 7 int i,max; 8 max=list[0]; 9 for(i=1;i<=(lenght-1);i++) 10 { 11 if(list[i]>max) 12 { 13 ma

课堂作业及 动手动脑问题整理

课堂作业一 使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”. 程序: package com; public class Duixiang { public static void main(String[] args){ duixiang a=new duixiang(); a.out(); duixiang b=new duixiang(); b.out(); } } class duixiang{ stati

课堂作业数组最大和

题目: 输入一个一维整形数组,数组里有正数也有负数. 一维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值. 发表一篇博客文章讲述设计思想,出现的问题,可能的解决方案(多选).源代码.结果截图.总结. 设计思想: 1.设计思想: 首先设置两个变量,分别用来存储数组长度也就是number和结果result:然后再通过语句来询问用户需要的数组长度再设个动态数组用来让用户输入数组中的数字,将每一个数值都存放进数组对应位

课后题3,4

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 练习2 { class Program { static void Main(string[] args) { //输入3个数,将这三个数从大到小排列打印出来: Console.Write("请输入第一个数:"); int a =Convert .ToInt32 (Console.ReadLine