python - 在第二列之后查找并替换

标签 python bash perl awk sed

我有以下几行

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/

相关文章:

python - python Selenium 包中的格式错误

python - 以文本模式打开文件会导致 Python 中的数据丢失 : why?

perl - 在 XML :TWIG, 中如何在找到感兴趣的元素后停止解析

perl - 在 Perl 中解析具有重复部分的文件

mysql - 如何检查数据是否插入数据库

python - Django:获取从views.py导入的模块的路径

python - 如何使用 Pandas 在单元格中保存 *.xlsx 长 URL

linux - 如何通过管道传输 2 个命令来获取我所在国家/地区的 IP 地址?

bash - 获取 STDOUT 第 n 行的命令

python - CentOS安装后看不到python3.8