题解 | #打印字母数小于8的单词#

打印字母数小于8的单词

https://www.nowcoder.com/practice/bd5b5d4b93a04226a81afbabf0be797d

三种方式可以实现
cat nowcoder.txt | sed 's/ /\n/g' | awk '{if(length($0)<8) print}'
cat nowcoder.txt | awk 'BEGIN{RS=" "} {if(length($0)<8) print $0;}'
cat nowcoder.txt | xargs -n 1 | awk '{if(length($0)<8) print;}'
本题的考点就在于如何自定义行分隔符,这里就用到了三种方式。
sed命令可以拆成 s/pattern/replacement/flags 来看,s表示后边的是替换指令,这里是将空格" "替换为换行“\n”,于是pattern和replacement依次填入" "和"\n"。g我猜就是global,表示全局匹配并替换,如果没有g,则只会匹配并替换第一个。
这一段指令会使得文本中每行只显示一个单词。

第二种方式里边的RS指row split,是一个预置变量,可以用这种方式来自定义换行符,类似的还有FS(filed split),可以自定义字段分割符,当然也可也这样指定字段分割符:`awk -F :`,即将 ":" 作为字段(列)分隔符。

第三种方式我觉得是最万能的,完整版应该是这样:
echo "nameXnameXnameXname" | xargs -d X -n 
-d自定义输入定界符,-n 1 表示每得到一个输入,便输出一行。文档:xargs

全部评论

相关推荐

05-28 23:26
河南大学 Java
双非本,刚学完Redis,项目只有外卖和点评,八股没准备,算法只有lqb省一,感觉敲的项目也是一言难尽没怎么吸收。怎么你们都有实习了
大牛之途:27急个锤子,你投日常实习最好的时间就是9,10月份,那时候暑期实习都结束了,正是缺人的时候。这份日常又能给你的暑期实习增加竞争力,暑期找的好了秋招也不怕了,都是环环相扣的
点赞 评论 收藏
分享
LemontreeN:有的兄弟有的我今天一天面了五场,4个二面一个hr面
投递字节跳动等公司7个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务