有谁知道如何根据键拆分文件并用相应的键名命名相关输出。提前致谢
输入
>mail9.country1(+):38689378-38709400
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>father
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>mother
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>son
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>daughter
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>mailX.countryX(+):000000-3111111110
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>father
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>mother
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>son
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>daughter
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
输出文件应如下所示,包含各自的内容
mail9.country1(+):38689378-38709400.mail
>mail9.country1(+):38689378-38709400
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>father
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>mother
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>son
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>daughter
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
mailX.countryX(+):000000-3111111110.mail
>mailX.countryX(+):000000-3111111110
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>father
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>mother
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>son
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
>daughter
XXXXXXXXXXXXXXXXX-----------HHHHHHHH------
最佳答案
awk
的一种方式:
$ awk -F'>' '$2~/^mail/{f=$2".mail";gsub(/[)(]/,"_",f)}{print > f}' file
关于linux - 根据键拆分文件并使用键名命名输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19808253/