yokiblogs

今天想学习linux,但win7系统,没办法打算安装了一下虚拟机virtualbox+centos7.

镜像和安装文件都准备就绪,通过virtualbox添加centos7,在设置系统时添加镜像,进入系统,但是enter之后一直黑屏。选择镜像文件时不能选择64位linux,但我的镜像是64位,网上说无64位选项是由于系统未打开虚拟机,需通过bios able这个虚拟设置。今天尝试未成功。改完后应用打开显示找不到com 对象。郁闷中。

对于linux系统awk, grep, sed为三剑客。

awk是适合格式化文本,对文本进行复杂的格式化处理,

grep是查找或匹配文字

sed是编辑匹配到的文本

 

awk学习

awk [options]\'program\' 文件1,文件2。。。

这个不好理解,通过具体的实例。

awk \'{print $1}\' 文件名  

$1意思是每行第一列,awk是通过逐行处理,一行一行处理,通常以换行符为标记为一行,每行分割符默认为空格;$2为第二列。。$NF为最后一列,倒数第二列为$(NF-1)。$0为整行。

cat awktest |awk \'{print $1}\' awktest   显示每一行的第一列

cat awktest |awk \'{print "name:" $1}\' awktest.   显示带有name: 

cat awktest |awk \'{print "hello " $1,",welcome"}\' awktest    显示如hello 人 ,welcome

 除此之外还有begin end 可类似于表头表尾。

at awktest |awk \'BEGIN{print "wenhou","name"} {print "hello " $1,",welcome"}END{print "jieshu","wumingzi"}\' awktest

如出现的结果为

wenhou name

hello hello ,welcome

hello linux ,welcome

hello byb ,welcome

jieshu wumingzi

awk还有if else 的语法:

例如对于90 为及格,小于60为不及格。

语法为:awk

cat awktest |awk \'BEGIN{print "wenhou","name"} {if($3>90){print $1,"jige"}else{print $1,"bujige"}}END{print "this is end"}\'

结果如下:

wenhou name

jone bujige

linux jige

byb bujige

this is end

awk暂时学习一些简单的使用,还能while循环等,正则表达式匹配等。 NR代表行号

 

再来学习sed简单语句:

sed是 string editor。文件的增删改替换查

sed -n  \'1p\' 文件名 显示第一行

sed \'1a aa\' 文件名 增加第一行后

sed \'1d\' file1   删除第一行

sed \'1i\' xx 与1a都是增加但放的位置不同。a为增加在后面,i为当前位置。原来数据后移

c 替代 sed ‘1c aa’ file1

s 替换。sed ‘s/1/aa’ ett.txt 将1换成aa

 

grep 是一个搜索工具。查找匹配条件的行。

grep -l "hello" file1 查找file1文件下的hello单词的行的文件名

grep  “hello” file1  查找file1文件下的hello单词的行

grep -v "hello" file1 查找file1文件下不含hello]单词的行

-n 显示匹配的行数与行

-r 递归搜索文件夹下的包含单词的行

-A  列数。grep 20 -A 10 从20开始往后10行

 

例题:100行,查找20行到30行的数。

head -30 ett.txt | tail -11

seq 10 30   用于产生从某个数到另外一个数之间的所有整数  seq 1 2 10  1-10中相邻2个的数

sed -n \'20,30\'p ett.txt 

grep 20 -A 10 ett.txt

awk \'NR>19&&NR<31\' ett.txt

例子到时候在加。

 

man cp 同类cp --help

分类:

技术点:

相关文章: