如何作为 shell 脚本调整 CSV 文本文件的特定列内的文本?

问题描述 投票:0回答:1

我有一个像这样的 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 脚本解决这个问题吗?

shell csv openstreetmap
1个回答
0
投票

你同时遇到的问题太多了。根据评论中的要求,您应该简化这个问题。

回答如何替代的问题:

输入:

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 
© www.soinside.com 2019 - 2024. All rights reserved.