将块地址转换为csv文件

时间:2017-03-08 12:58:23

标签: bash csv awk sed

假设我有一个以下形式的文本文件

Name1
Address 1.1
Address 1.2
Pincode 1

Name2
Address 2.1
Address 2.2
Pincode 2

有没有办法在sed或awk中编写脚本来创建以下格式的csv文件

Name1;Address 1.1;Address 1.2;Pincode1
Name2;Address 2.1;Address 2.2;Pincode2

任何帮助将不胜感激。我有一个带有这样地址的巨大文本文件,我想从中创建一个数据库。

3 个答案:

答案 0 :(得分:2)

试试这个单行:

awk -v RS="" 'gsub(/\n/,";")' file
Name1;Address 1.1;Address 1.2;Pincode 1
Name2;Address 2.1;Address 2.2;Pincode 2

答案 1 :(得分:2)

按惯例/意图使用awk:

$ awk -v RS= -F'\n' -v OFS=';' '{$1=$1}1' file
Name1;Address 1.1;Address 1.2;Pincode 1
Name2;Address 2.1;Address 2.2;Pincode 2

答案 2 :(得分:0)

你可以试试这个 -

sed '/^$/d' f | awk -v FS=";" ' {ORS=(NR%4==0?RS:FS)}1'
Name1;Address 1.1;Address 1.2;Pincode 1
Name2;Address 2.1;Address 2.2;Pincode 2

如果没有空白行,我们可以删除sed命令。