我有一个有几个字段的文件(test.csv),我想要的是标题和路径,标题有10个字符,并从路径中删除一些级别。所做的工作是使用awk命令选择两个字段:
$ awk -F "," '{print substr($4, 1, 10)","$6}' test.csv [1]路径中需要删除的三个级别并不总是相同的。它可以是/article/17/1/或者这个/open-organization/17/1,所以我不能在$6字段中使用substr。
下面是我得到的结果:
Title,Path
Be the ope,/article/17/1/be-open-source-supply-chain
Developing,/open-organization/17/1/developing-open-leaders想要的结果是:
Title,Path
Be the ope,be-open-source-supply-chain
Developing,developing-open-leaders标题可以使用10个字符,但我仍然需要删除路径中的3个级别。
我可以使用cut命令:
cut -d'/' -f5- to remove the "/.../17/1/"但不确定如何将其通过管道传输到%1
我尝试使用for循环逐个获取标题和路径,但我很难让awk命令一次运行一行。
我已经在这上面花了几个小时了,但没有任何运气。任何帮助都将不胜感激。
用于测试的虚拟数据:
test.csv
发布日期、内容类型、作者、标题、评论计数、路径、标签、字数
2017年1月31日,文章,Scott Nesbitt,书评:Our to Hack and Own,0,OpenStack图书,660 2017年1月31日,文章,Jason Baker,5个使用/article/17/1/review-book-ours-to-hack-and-own,的新指南,2/文章/17/1/OpenStack-tutorials,"OpenStack,How-tos and tutorials",419
发布于 2018-12-23 21:04:50
您可以使用regex替换该字符串。
stringZ="Be the ope,/article/17/1/be-open-source-supply-chain"
sed -E "s/((\\/\\w+){3}\\/)//" <<< $stringZ请注意,如果要将文件作为输入提供给sed,则需要使用-i
https://stackoverflow.com/questions/53903667
复制相似问题