仅使用命令行解析URL

时间:2015-02-20 17:25:26

标签: awk sed

我有一个csv文件,如下所示:

id,author,url
1,bob,http://mywebsite.com/path/to/content
2,john,https://anotherwebsite.com/path/to/some/other/content
3,alice,http://www.somewebsite.com/path/to/content

我想把它变成:

id,author,url
1,bob,mywebsite.com
2,john,anotherwebsite.com
3,alice,somewebsite.com

我知道这可以通过javascript或python轻松完成,但我想了解awksed的工作原理。有没有办法只使用命令行工具轻松完成?

非常感谢

1 个答案:

答案 0 :(得分:0)

这应该做:

awk -F, 'NR>1{split($3,a,"/");$0=$1","$2","a[3]}1' file
id,author,url
1,bob,mywebsite.com
2,john,anotherwebsite.com
3,alice,www.somewebsite.com

使用,分割线条 然后,对于除第一行NR>1之外的所有内容,拆分归档$3,重新创建该行 1打印全部


同时删除www.

awk -F, 'NR>1{split($3,a,"/");sub(/^www./,"",a[3]);$0=$1","$2","a[3]}1'
id,author,url
1,bob,mywebsite.com
2,john,anotherwebsite.com
3,alice,somewebsite.com