教育房产时事环球科技商业
投稿投诉
商业财经
热点动态
科技数码
软件应用
国际环球
晨报科学
新闻时事
信息智能
汽车房产
办公手机
教育体育
生活生物

文本分析(课题研究常用方法)

  文本分析(课题研究常用方法)
  awk是流式编辑器,针对文档中的行来操作,一行一行地执行。awk可以非常方便、高效地操作文档以及字符,从而实现我们想要的格式。它的功能非常强大,我在 shell 脚本中经常使用它来处理字符串。下面介绍几个在工作中使用awk较频繁的用法。
  1. 截取文档中的某个段
  示例命令如下:#head-n2test.txt|awk-F':''{print$1}'root  bin
  本例中,-F选项的作用是指定分隔符。如果不加-F选项,则以空格或者tab为分隔符。print为打印的动作,用来打印某个字段。$1为第 1 个字段,$2为第 2 个字段,以此类推。但$0比较特殊,它表示整行:#head-n2test.txt|awk-F':''{print$0}'root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologin
  注意awk的格式,-F后面紧跟单引号,单引号里面为分隔符。print的动作要用{}括起来,否则会报错。print还可以打印自定义的内容,但是自定义的内容要用双引号括起来,如下所示:#head-n2test.txt|awk-F':''{print$1"#"$2"#"$3"#"$4}'root#x#0#0bin#x#1#1
  2. 匹配字符或者字符串
  在文档中过滤出包含指定字符串的行,示例命令如下:#awk'/oo/'test.txtroot:x:0:0:root:/root:/bin/bashlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0perator:/root:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsetroubleshoot:x:992:990::/var/lib/setroubleshoot:/sbin/nologin
  这跟sed的用法类似,能实现grep的功能,但没有颜色显示,肯定没有grep用起来方便。不过awk还有比sed更强大的匹配,如下所示:#awk-F':''$1~/oo/'test.txtroot:x:0:0:root:/root:/bin/bashsetroubleshoot:x:992:990::/var/lib/setroubleshoot:/sbin/nologin
  它可以让某个段去匹配,这里的~就是匹配的意思。
  此外,awk还可以多次匹配,如下所示:#awk-F':''/root/{print$1,$3}/test/{print$1,$3}'test.txtroot0operator11test1006
  本例中,awk匹配完root,再匹配test,并且只打印所匹配的段。
  3. 条件操作符
  有时候,在匹配字符的同时要给出限定条件,比如第 3 段为0。示例命令如下:#awk-F':''$3=="0"'/etc/passwdroot:x:0:0:root:/root:/bin/bash
  在awk中,我们可以用逻辑符号进行判断,比如==就是等于,也可以理解为精确匹配。另外,还有>、>=、、!=等。值得注意的是,在和数字比较时,若把要比较的数字用双引号引起来,那么 awk 不会将其认为是数字,而会认为是字符,不加双引号就会认为是数字。示例命令如下:#awk-F':''$3>="500"'/etc/passwd|head-n5shutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinnobody:x:65534:65534:KernelOverflowUser:/:/sbin/nologindbus:x:81:81:Systemmessagebus:/:/sbin/nologin
  本例中,阿铭本想把 uid 大于等于 500 的行打印出来,但是结果并不理想。这是因为awk把所有的数字都当作字符了,就跟上一章中提到的sort排序原理一样。但是,如果不加双引号,就得到了想要的结果:#awk-F':''$3>=500'/etc/passwd|head-n5nobody:x:65534:65534:KernelOverflowUser:/:/sbin/nologinsystemd-coredump:x:999:997:systemdCoreDumper:/:/sbin/nologinpolkitd:x:998:996:Userforpolkitd:/:/sbin/nologingeoclue:x:997:995:Userforgeoclue:/var/lib/geoclue:/sbin/nologinunbound:x:996:991:UnboundDNSresolver:/etc/unbound:/sbin/nologin#awk-F':''$7!="/sbin/nologin"'/etc/passwdroot:x:0:0:root:/root:/bin/bashsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltaminglinux:x:1000:1000:aminglinux:/home/aminglinux:/bin/bash
  上例中,!=表示不匹配,它除了针对某一个段的字符进行逻辑比较外,还可以在两个段之间进行逻辑比较。如下所示:#awk-F':''$3
  另外,还可以使用&&和||,它们分别表示"并且"和"或者"。&&的用法如下:#awk-F':''$3>"5"&&$3
  ||的用法如下:#awk-F':''$3>1000||$7=="/bin/bash"'/etc/passwdroot:x:0:0:root:/root:/bin/bashnobody:x:65534:65534:KernelOverflowUser:/:/sbin/nologinaminglinux:x:1000:1000:aminglinux:/home/aminglinux:/bin/bash
  4. awk 的内置变量
  awk常用的变量有OFS、NF和NR。OFS和-F选项有类似的功能,也是用来定义分隔符的,但是它是在输出的时候定义的。NF表示用分隔符分隔后一共有多少段。NR表示行号。
  OFS的用法示例如下:#head-5/etc/passwd|awk-F':''{OFS="#"}{print$1,$3,$4}'root#0#0bin#1#1daemon#2#2adm#3#4lp#4#7
  还有更高级一些的用法:#awk-F':''{OFS="#"}{if($3>=1000){print$1,$2,$3,$4}}'/etc/passwdnobody#x#65534#65534aminglinux#x#1000#1000
  变量NF的具体用法如下:#head-n3/etc/passwd|awk-F':''{printNF}'777#head-n3/etc/passwd|awk-F':''{print$NF}'/bin/bash  /sbin/nologin  /sbin/nologin
  这里NF是多少段,$NF是最后一段的值。变量NR的具体用法如下:#head-n3/etc/passwd|awk-F':''{printNR}'123
  我们还可以使用NR作为判断条件,如下所示:#awk'NR>40'/etc/passwdinsights:x:978:976:RedHatInsights:/var/lib/insights:/sbin/nologinsshd:x:74:74rivilege-separatedSSH:/var/empty/sshd:/sbin/nologinavahi:x:70:70:AvahimDNS/DNS-SDStack:/var/run/avahi-daemon:/sbin/nologintcpdump:x:72:72::/:/sbin/nologinaminglinux:x:1000:1000:aminglinux:/home/aminglinux:/bin/bash
  NR也可以配合段匹配一起使用,如下所示:#awk-F':''NR
  5. awk 中的数学运算
  awk可以更改段值,示例命令如下:#head-n3/etc/passwd|awk-F':''$1="root"'rootx00root/root/bin/bashrootx11bin/bin/sbin/nologinrootx22daemon/sbin/sbin/nologin
  awk也可以对各个段的值进行数学运算,示例命令如下:#head-n2/etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologin#head-n2/etc/passwd|awk-F':''{$7=$3+$4}'#head-n2/etc/passwd|awk-F':''{$7=$3+$4;print$0}'rootx00root/root0binx11bin/bin2
  awk还可以计算某个段的总和,示例命令如下:#awk-F':''{(tot=tot+$3)};END{printtot}'/etc/passwd84699
  这里的END是awk特有的语法,表示所有的行都已经执行。如下所示:#awk-F':''{if($1=="root"){print$0}}'/etc/passwdroot:x:0:0:root:/root:/bin/bash
  其实awk可以写成一个脚本文件,而且有它特有的语法。在awk中使用if判断、for循环都可以,只是在日常管理工作中,使用那么复杂的语句并不常见。
  最后,我们再附上常见正则字符的解释。
  .表示任意一个字符,比如空格、特殊符号等。
  *表示*前面的字符有 0 个或多个,比如a*那就是 0 个a或者多个a。
  .*表示任意个任意字符,就是贪婪匹配了。
  +就是+前面的字符有 1 个或者多个,如a+就是a、aa、aaa……
  ?就是?前面的字符有 1 个或者 0 个。
  { }里面是一个范围,如{1,5}就是{ }前面的字符有 1~5 个。
  |表示或者,如a|b就是a或者b。
  表示这里面的任意一个字符,如[abc]就是a或者b或者c。此外,也可以用范围[0-9]表示任意一个数字,用[a-z]表示任意一个小写字母。

中秋节祝福的诗句(96首最美古诗词祝大家中秋快乐)中秋节祝福的诗句(96首最美古诗词祝大家中秋快乐)今天中秋,为大家准备了96首中秋节诗词祝大家中秋快乐!!!中秋月二首李峤其一盈缺青冥外,东风万古吹。何人种丹桂,不长出轮枝。其二圆中秋节的来源(中秋节起源与传说习俗)中秋节的来源(中秋节起源与传说习俗)中秋节作为我国法定的传统节假日,一直深受人们的喜爱,中秋节这天,人们终于能从劳碌的工作和生活中得到放松,还可以和家人团聚,在是一件多么幸福和享受角膜炎症状图片(角膜炎怎么治疗最快)角膜炎症状图片(角膜炎怎么治疗最快)当我们的眼睛休息不好的时候,眼睛是很容易并发角膜炎的。角膜炎发病后一般表现为视物模糊疼痛畏光和流泪等刺激症状及明显的视力减退。图片来源https骨膜炎的治疗方法(骨膜炎有哪些治疗环节?)骨膜炎的治疗方法(骨膜炎有哪些治疗环节?)骨膜炎患者应该要尽早明确诊断,采取合适的治疗措施,根据病因选择适合自己的治疗方案,并且要及时进行综合有效的治疗,同时也需要进行功能的锻炼,胸膜炎的治疗(治疗胸膜炎多采用这3个治疗方法)胸膜炎的治疗(治疗胸膜炎多采用这3个治疗方法)胸膜炎,是由致病因素(通常是病毒或细菌)刺激胸膜引起的胸膜炎症,也称肋膜炎。胸部可伴有液体积聚或无液体积聚,炎症控制之后,胸膜可恢复正角膜炎治疗(角膜炎小妙招)角膜炎治疗(角膜炎小妙招)前段时间,我们的眼睛经常出现模糊,甚至有点疼痛的感觉,到医院检查经医生诊断是因为角膜炎而造成的。那么角膜炎是什么原因造成的呢?我们有没有一些好的方法可以快脚底穴位(脚底板有多少穴位,都有哪些作用?)脚底穴位(脚底板有多少穴位,都有哪些作用?)其实大家都知道脚底上面的一些穴位也是非常常见的,一定要记得完全可以通过一些按摩的方式,可是很多人都不知道脚底到底有多少穴位,而且它的一些脚底穴位图(脚底的穴位图及功能)脚底穴位图(脚底的穴位图及功能)足疗穴位图,脚底的穴位图及功能,下面小编为你详细介绍。由于人体特殊构造,所有器官都有神经延接至足部,其末梢神经区块,就是所谓的反射区。临床实验证明,脚底按摩手法(这种天然脚底按摩法)脚底按摩手法(这种天然脚底按摩法)走在大马路上,每条街上都能看到足底按摩店,可见中国人对足底按摩的迷恋程度有多高。脚掌虽小,却被誉为人体的第二心脏,也被按摩店鼓吹为驱病养生的手段,脚底按摩(经常做脚底按摩)脚底按摩(经常做脚底按摩)走在大马路上,每条街上都找到足底按摩店,可见中国人对足底按摩的迷恋程度有多高。脚掌虽小,却被誉为人体的第二心脏,也被按摩店鼓吹为驱病养生的手段,脚底按摩虽治疗打呼噜的穴位(4种穴位按摩法治疗打鼾)治疗打呼噜的穴位(4种穴位按摩法治疗打鼾)打鼾是一种普遍存在的睡眠现象,目前大多数人认为这是司空见惯的,不以为然。但是其实打呼噜是健康的天敌,原因是打呼噜使睡眠呼吸反复暂停,造成大
马伯庸为什么叫亲王(马伯庸马伯骞什么关系)爱看小说的朋友,很多都听过一个词,陨石遁。那么陨石遁是什么意思呢?其实这是一个网络小说梗。小说我在江湖的结局,天降陨石,砸死了所有正派与反派,只剩下一个孤独的主角。然后主角也自刎而今日废吕价格长江现货(现在铝废品多少钱一斤)提供废铁价格废铁价格行情最新废铁价格走势今日废铁价格表废铁多少钱一斤废铁回收价格。铝价格多少钱一吨。沪铜。今年03月31日猪肉价格多少钱一斤,熟铝锭不含税易拉罐铝锭不含税生铝锭不含东芝空调怎么样(东芝进口中央空调怎么样)带你走进东芝中央空调的世界第二章(原创)本人在南京从事中央空调行业多年,而真正意义上的去真正了解每一个品牌,去客观的分析,也就是近几年的事情,从言之无物到实事求是,经过了市场的无情拍大师怎么(拍大师下载)本文转自摄影教程大全号sheying757摄影技巧很多人会觉得静物摄影很简单,但正因为好上手,所以想要拍好拍的有格调就格外难。你拍的静物,大师拍的静物,今天,bobo就来给大家说说怎么拍大师(拍大师下载)现在手机摄影已经成为了每个人的习惯,即使你并非一个摄影爱好者,都会拿起手机来进行拍摄。因此一部手机的拍摄能力绝对是衡量整体实力与使用感受的硬指标,并且拍摄性能也是消费者购买手机的重梅花鹿吃什么?(梅花鹿到底吃什么维生呢?)梅花鹿吃什么?(梅花鹿到底吃什么维生呢?)大部分人都只是在动物园才见过梅花鹿,因它夏毛棕黄色,遍布鲜明的白色梅花斑点,所以称梅花鹿。臀斑白色,喜欢生活于森林边缘或山地草原地区,根据刺猬能活多久(刺猬喜欢摸它哪里)刺猬特别可爱,友好,是非常好的宠物!下面咱们就来了解下关于刺猬的10个小知识。刺猬是夜间活动的动物,它们白天休息,晚上游荡。它们喜欢在树篱周围栖息,树篱的英文是hedge,所以刺猬猫咪吃多久(猫宁愿饿着也不吃猫粮)做功课蹲车卡点抢购买回来的新猫粮冻干罐头主子却不太赏脸有时假巴意思吃两口,有时,甚至闻一闻就直接走掉!图自猫研所给TA换新的吧,担心惯得TA越来越挑食!饿着TA,爱吃不吃吧,又怕把野兔吃什么(立秋后野兔在什么地方)我上学放假的时候,常回农村老家去玩,那个时候农村野兔还是蛮多的,因为那个年代树木和森林都十分的茂盛,野兔有丰富的食物资源,它们繁殖的非常快,一只母野兔每年下一至两窝兔崽,一只母兔下今日全国球墨铁屑价格球墨铸铁和灰铸铁区别球墨铸铁给水管,是一种铁,集贸市场新货上市量也明显下降,球墨铸铁管是铸铁的一种,是国内专注炉料行业的全产业链B2B电子商务现货交易平台,国内钢材市场呈稳中有跌。同时也是国内实力炉料青海在哪里的(青海十大旅游景区)西宁西宁(别名青唐城西平郡等)是青海省省会,位于青海省东北部青藏高原东北部,地处湟水及三条支流的交汇处,取西陲安宁之意。西宁属大陆性高原半干旱气候,夏季平均气温1719,气候宜人,