我有一个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轻松完成,但我想了解awk
和sed
的工作原理。有没有办法只使用命令行工具轻松完成?
非常感谢
答案 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