我有以下几行
92520536843;Sof_voya_Faible_Email_am;EMAIL;28/01/2015;1;0;0;Sof_voya_Faible_Email_am;30/01/2015;Sof_voya_Faible_Email_Relance_am
92515196529;Sof_trav_Fort_Email_pm_%yyyy%mm%dd%;EMAIL;05/02/2015;1;0;0;Sof_trav_Fort_Email_pm_%yyyy%mm%dd%;09/02/2015;Export Trav_Fort Postal
我正在尝试在第 7 个 字段 之后替换 Sof_
或 _%yyyy%mm%dd%
之类的字符串。
我考虑过使用sed
sed -i 's/<string_to_look_for>/<string_to_replace>/7g' filename
但它只是改变了字段分隔符。
我想过用这个
awk -F";" '{ for (i=7; i<=NF; i++) print $i }' filename
但我不知道如何为我要替换的字符串插入搜索和替换。
欢迎任何帮助。
编辑:在第 7 列之后替换 Sof_
或 _%yyyy%mm%dd%
等字符串后的预期结果。
92520536843;Sof_voya_Faible_Email_am;EMAIL;28/01/2015;1;0;0;voya_Faible_Email_am;30/01/2015;voya_Faible_Email_Relance_am
92515196529;Sof_trav_Fort_Email_pm_%yyyy%mm%dd%;EMAIL;05/02/2015;1;0;0;trav_Fort_Email_pm;09/02/2015;Export Trav_Fort Postal
致 Python 和 Perl 专家,因为我正在努力提高我在这些语言方面的知识,欢迎您的帮助:)
最佳答案
你可以使用这个awk
:
awk 'BEGIN{FS=OFS=";"} {for (i=7;i<=NF;i++) gsub(/Sof_|_%yyyy%mm%dd%/, "", $i) } 1' file
92520536843;Sof_voya_Faible_Email_am;EMAIL;28/01/2015;1;0;0;voya_Faible_Email_am;30/01/2015;voya_Faible_Email_Relance_am
92515196529;Sof_trav_Fort_Email_pm_%yyyy%mm%dd%;EMAIL;05/02/2015;1;0;0;trav_Fort_Email_pm;09/02/2015;Export Trav_Fort Postal
关于python - 在第二列之后查找并替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28881382/