我有一个像这样的 CSV 源文件。
id;kat;kat_de;kat_en;kat_sub_de;kat_sub_en;name;strasse;plz;gemeinde;landkreis;stellplaetze;emob;linien;website;phone;betreiber;oeffnungszeiten;vbn;x_wgs84;y_wgs84;haltestelle
VW105044690;5;Kundencenter;Costumer Service Centres;retail,office,information,ticket;retail,office,information,ticket;Kunden-Servicecenter Vegesack BSAG Kundencenter;Vegesacker Bahnhofsplatz;28757;Bremen;Bremen;0;f;;https://bsag.de/de/tickets/kundencenter-servicestellen/bsag-kundencenter-vegesack.html https://bsag.de/de/tickets/kundencenter-servicestellen/bsag-kundencenter-vegesack.html;"";BSAG;"Mo-Fr 07:00-18:30; Sa 09:00-15:00; Su,PH off";f;8.628101750000006;53.16975189909493;
第 18 列包含 OSM 标签 opening_hours 的值。该值通常是英文的。
我喜欢将
Abbr.
的 Day of week
从英语更改为德语从
Abbr. Day of week
Mo Monday
Tu Tuesday
We Wednesday
Th Thursday
Fr Friday
Sa Saturday
Su Sunday
PH off Public Holiday
到
Abbr. Day of week
Mo Monday
Di Tuesday
Mi Wednesday
Do Thursday
Fr Friday
Sa Saturday
So Sunday
Feiertag Public Holiday
off geschlossen
这意味着目标文件将类似于此示例。
id;kat;kat_de;kat_en;kat_sub_de;kat_sub_en;name;strasse;plz;gemeinde;landkreis;stellplaetze;emob;linien;website;phone;betreiber;oeffnungszeiten;vbn;x_wgs84;y_wgs84;haltestelle
VW105044690;5;Kundencenter;Costumer Service Centres;retail,office,information,ticket;retail,office,information,ticket;Kunden-Servicecenter Vegesack BSAG Kundencenter;Vegesacker Bahnhofsplatz;28757;Bremen;Bremen;0;f;;https://bsag.de/de/tickets/kundencenter-servicestellen/bsag-kundencenter-vegesack.html https://bsag.de/de/tickets/kundencenter-servicestellen/bsag-kundencenter-vegesack.html;"";BSAG;"Mo-Fr 07:00-18:30; Sa 09:00-15:00; So,Feiertag geschlossen";f;8.628101750000006;53.16975189909493;
知道如何使用 GNU/Linux shell 脚本解决这个问题吗?
你同时遇到的问题太多了。根据评论中的要求,您应该简化这个问题。
回答如何替代的问题:
输入:
Tu-We 07:00-18:30; Su 09:00-15:00
使用
sed
: 的 Shell 代码
sed '
s/Tu/Di/g;
s/We/Mi/g;
s/Th/Do/g;
s/Su/So/g;
s/PH/Feiertag/g
' file
输出:
Di-Mi 07:00-18:30; So 09:00-15:00