数据操作命令

wc -l *.csv
sort -u *.csv |wc -l

cut -d’,’ -f3 *.csv |sort -u
cut -d’,’ -f4,9 zz.csv >result.csv //取文件中的第4和第九个字段 -d是分隔符,不加的话默认为tab
cut -c2- result.csv >result01.csv //截取第二个字符之后的内容

cat tal.csv |grep ‘mid’|grep ‘mname’|sort -u>talmm.csv
cat *.csv |grep “/quota/personal” |sort -u |wc -l
cat *.csv |grep “/quota/personal” >quota.csv

awk -F"," ‘{print $5}’ 1.csv > f5.csv -F:分隔符(field separator) 显示文件的第五个字段

awk -F, ‘{print $1; print $2}’ 1.csv //将每一行的前二个字段,分行输出,进一步理解一行一行处理文本
awk -F, ‘{print $1,$3,$6}’ 1.csv //输出字段1,3,6,以空格作为分隔符
awk -F, ‘{print $1,$3,$6}’ OFS="!" 1.csv //输出字段1,3,6,以感叹号作为分隔符
awk -F":" ‘{print $1 $3}’ /etc/passwd //$1与$3相连输出,不分隔

split -l 283564 test.json //切分文件, -l后面跟行数表示每几行划分到一个文件中 切分之后的两个文件分别为xaa,xab

split -l 3 zjl6.txt -d -a 2 sp // -d -a -d表示拆分后文件的后缀采用数字的形式 -a 输出文件后缀长度,默认为:2 sp表示查分后的文件的前缀 生成的两个文件为sp00 sp01

如果要按照文件字节大小:split -b 5k a.txt -d -a 3 good_

grep命令
grep 或:
cat ss.csv | grep -E ‘report|merchant’ 找出文件中包含“report”或者“merchant”的内容
egrep ‘123|abc’ filename // 用egrep同样可以实现
awk ‘/123|abc/’ filename // awk 的实现方式

grep 与:
cat ss.csv | grep ‘report’ | grep ‘merchant’ 找出文件中同时包含“report”和“merchant”的内容

grep -i "merchant’ files //不区分大小写

grep -w ‘cat’ files //只匹配整个单词,而不是字符串的一部分(如匹配‘cat’,而不是‘catch’),

grep -vE ‘(2018-09-30T15|2018-09-30T14)’ //排除多个选择

除去2文件中与1文件重合的部分

grep -Fxvf 1 2
-w 单词匹配
-x 整行匹配
示例(-w和-x的区别):
upsmart@upsmart-12:~/1log/warcraft$ cat 1
1111
222
333
444

upsmart@upsmart-12:~/1log/warcraft$ cat 2
111
222 fff
333

upsmart@upsmart-12:~/1log/warcraft$ grep -Fwvf 1 2
111

upsmart@upsmart-12:~/1log/warcraft$ grep -Fxvf 1 2
111
222 fff

**例1**

900005,/p/report/mid,2018-06-19 10:14:48 228000,{“mname”:[“北京二手车”],“sign”:[“0393AB01B9C4D71C2E767338C308ACFC”],“legalName”:[“周娟”],“account”:[“900005”],“identityCard”:[“410222198201043528”],“mid”:[“113320555210004”],“moduleCode”:[“M00”],“regNo”:[“360122210053253”],“orderId”:[“3C22002815293744880369263”],“mobile”:[“18762940996”]},1000,none,None

要求:取{}中的内容

cut -d’{’ -f2- talall.csv |cut -d’}’ -f1 >ttt.csv

“mname”:[“北京二手车”],“sign”:[“0393AB01B9C4D71C2E767338C308ACFC”],“legalName”:[“周娟”],“account”:[“900005”],“identityCard”:[“410222198201043528”],“mid”:[“113320555210004”],“moduleCode”:[“M00”],“regNo”:[“360122210053253”],“orderId”:[“3C22002815293744880369263”],“mobile”:[“18762940996”]

**例2**

F3010004 /quota/personal CB308AFE0BDAAFE7AD9E19DD1C3452D97EA94F384615BD8FF6FF2E0A9574A2185 2018-05-07 13:00:38.155000 {“account”: “F3010004”, “encrypt”: “e80ZvmYrFQtUWwTpqEm0ob4hGXAZeuEbl/AWliibljQ1fGYONvMN947W7naGo+hR6xj9j2GdM75zMMBjAKTq1Yz2I2nDCdqH1iFhx+Sm1xA8JeYxZqeEW9Gt7LLrVxdBS20LXurmS0WpMyQzE4dbh5+1oT4q3oJ+EIgpRKsQmeA2xyR/sI9BQ+WMW14jFb2CMPwv6wdA5AIefnZKZUjZ2ee/yACjaj4hBs7FWAwKU2cciYlMDkZeBI7QNdjrTTuEyeLy46JNwEIBdsj3pWGgXLFkQ1zyblDJyDzu2A9bbK06emKdDSy4kzPqhz+kDnW3HFSzRuzai1ThTm2A36gl0A==”, “sign”: “9983A38FCD42C255C3C3572780BB1392”} 2000 RSA None

要求:分割以上数据 取出CB308AFE0BDAAFE7AD9E19DD1C3452D97EA94F384615BD8FF6FF2E0A9574A2185字段

cut -d' '  -f3 1.csv

结果拿到的是 13:00:38.155000 {“account”:
由此可见 CB308AFE0BDAAFE7AD9E19DD1C3452D97EA94F384615BD8FF6FF2E0A9574A2185字段前的分隔符不是空格

查看分隔符命令:

cat -A 1.csv 

F3010004I/quota/personalICB308AFE0BDAAFE7AD9E19DD1C3452D97EA94F384615BD8FF6FF2E0A9574A2185^I2018-05-07 13:00:38.155000^I{“account”: “F3010004”, “encrypt”: “e80ZvmYrFQtUWwTpqEm0ob4hGXAZeuEbl/AWliibljQ1fGYONvMN947W7naGo+hR6xj9j2GdM75zMMBjAKTq1Yz2I2nDCdqH1iFhx+Sm1xA8JeYxZqeEW9Gt7LLrVxdBS20LXurmS0WpMyQzE4dbh5+1oT4q3oJ+EIgpRKsQmeA2xyR/sI9BQ+WMW14jFb2CMPwv6wdA5AIefnZKZUjZ2ee/yACjaj4hBs7FWAwKU2cciYlMDkZeBI7QNdjrTTuEyeLy46JNwEIBdsj3pWGgXLFkQ1zyblDJyDzu2A9bbK06emKdDSy4kzPqhz+kDnW3HFSzRuzai1ThTm2A36gl0A==”, “sign”: “9983A38FCD42C255C3C3572780BB1392”}I2000IRSA^INone

^I代表tab分割符

cut  -f3 1.csv

不加-d默认是tab分割

注:vi中的 set list 命令也能查看分隔符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值