linux cut paste sed awk find使用

 #对该文件进行每列取出
cut -f 1 SMS_`date -d '2 days ago' +%Y%m%d`_1.txt SMS_`date -d '2 days ago' +%Y%m%d`_2.txt SMS_`date -d '2 days ago' +%Y%m%d`_3.txt > SMS_`date -d '2 days ago' +%Y%m%d`_1.log
cut -f 2 SMS_`date -d '2 days ago' +%Y%m%d`_1.txt SMS_`date -d '2 days ago' +%Y%m%d`_2.txt SMS_`date -d '2 days ago' +%Y%m%d`_3.txt > SMS_`date -d '2 days ago' +%Y%m%d`_2.log
cut -f 3 SMS_`date -d '2 days ago' +%Y%m%d`_1.txt SMS_`date -d '2 days ago' +%Y%m%d`_2.txt SMS_`date -d '2 days ago' +%Y%m%d`_3.txt > SMS_`date -d '2 days ago' +%Y%m%d`_3.log
#对取出该列的每个文件进行粘贴到部署的SQLLoader里的//home/datebakt_temp.cvs文件里,每列,分开
paste -d, SMS_`date -d '2 days ago' +%Y%m%d`_1.log SMS_`date -d '2 days ago' +%Y%m%d`_2.log SMS_`date -d '2 days ago' +%Y%m%d`_3.log  > /home/datebak/t_temp_`date -d '2 days ago' +%Y%m%d`_TAB.cvs

#删除空格
sed s/[[:space:]]//g t_temp_`date -d '2 days ago' +%Y%m%d`_TAB.cvs> t_temp_`date -d '2 days ago' +%Y%m%d`_SMS.cvs
rm -rf t_temp_`date -d '2 days ago' +%Y%m%d`_TAB.cvs
#awk '$4=",SMS"' t_temp_`date -d '8 days ago' +%Y%m%d`.cvs

 

说明:

查找

awk ‘/101/’ a.txt 显示文件a.txt中包含101的匹配行。
awk ‘/101/,/105/’ a.txt 显示文件a.txt中包含101的匹配行在105范围之内

查看每行有多少列 (在第二列显示)
awk '{print NR,NF,$1,$NF}' a.txt

查看需求列大于需要值则显示满足的行记录
df | awk '$4>1000000 ‘ 通过管道符获得输入,如:显示第4个域满足条件的行。
cat a.txt | awk '$5>600

awk -F "|" '{print $1}' a.txt 按照新的分隔符“|”进行操作
##通过设置输入分隔符(FS=”[: /t|]”)修改输入分隔符,使每一列对齐
awk 'BEGIN {FS="[: /t|]"}{print $1,$2,$3,$4,$5,$6,$7,$8,$9}' a.txt

awk ‘BEGIN { OFS=”%”} {print $1,$2}’ file 通过设置输出分隔符(OFS=”%”)修改输出格式

##查看第二行是否大于1,大于则high 否则low 显示 (if else then)
awk '{print ($2>1 ? "high "$2:"low " $2 )}' a.txt

##使用第二行%2,并除后得到的结果
awk '{$2 %=2;print $2}' a.txt

##找到匹配行后先将第3个域替换后再显示该行(记录)。
awk ‘{$1 == ‘Chi’ {$3 = ‘China’; print}’ file

 

 

 

1.查看行记录
sed -n '2'p filename  --查看filename文件第二行
sed -n '1,3'p filename --查看filename文件第一和第三行
sed -n '1,$'p filename --$表示最后一行
sed "/NO/,/to/p" test.log -n --输出在这之间的全部内容

2.查看匹配的行记录
sed -n '/the/'p filename --查看filename 匹配the行记录
sed -n '4,/The/'p filename --查看第四行查看带有the
sed -n '/.*ing/'p filename --查看以ing结尾的单词(.不能少)
sed -n -e'/delete/'p file_del.log --打印存在delete行并记录行号

3.删除行记录
sed '1'd ( '1,3'd '$'d '/Neave/'d) filename  --删除第一行(1到3行,最后一行,匹配Neave的行
sed "1,/from/d" sedtest.txt --删除包括从第一行到第一个包含from字符串的行之间的所有内容
sed -e '3,7!d' sedtest.txt --删除3-7行之外的所有行
sed -e '1,/from/!d' sedtest.txt --找到包含from字符串的行,删除其后的所有行

 

4.记录中增加字符或文本
sed s'/nurse/"hello "&/' filename  --在nurse前添加 "hello"
sed s'/nurse/ hello &/' filename   --在nurse前添加 hello
sed '/company/r append.txt' filename --在company后面添加 append.txt文件内容,字符不起作用
sed '/company/'q filename  --第一次匹配就退出
sed '/delete/'i/ "soeiowieow" test.log --在delete前面插入soeiowieow来自文件test.log
sed "s/Check/(&)/g" test.log --给全部Check字符串添加()
sed "/Check/s/.*/(&)/" test.log --给包含Check行外添加()

5.替换字符
sed '/company/' c/ "Then" filename  --用户Then来替换company
sed -e "/is/c//*******" test.log --替换包含is字符串匹配行为*******
sed "/But/s/is/are/g" sedtest.txt --包含But字符行出现is替换为are
sed "s/is/are/5" sedtest.txt     --把每行is出现的第五次替换成are
sed "1,10w sed.out" sedtest.txt -n --将sedtest.txt中1-10行的内容写到sed.out文件中
sed "1r sedappend.txt" sedtest.txt  --将sedappend.txt中的内容附加到sedtest.txt文件的第一行之后
sed "y/abcdef/ABCDEF/" sedtest.txt  --将sedtest.txt中所有的abcdef小写字母替换成ABCDEF大写字母
sed s/[[:space:]]//g t_temp_TAB.cvs>t_temp.cvs --把空格给退换为空

 

find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件

 

 

1.把每列文件通过,连接
paste -d, part1 part2 part3 part4 > part
2.分开每列文件
cut -f 1 文件名称 > part
cut -f 2 文件名称 > part
3.匹配的行
sed -n '/,5,/'p part > part5

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值