Bei einer Datei foo.txt
enthält Dateinamen wie schneiden:Unter Verwendung von mit Trennzeichen ähnlich sed
2015_275_14_1,Siboney_by_The_Tailor_Maids
2015_275_16_1,Louis_Armstrong_Cant_Give_You_Anything_But_Love
2015_275_17_1,Benny_Goodman_Trio_Nice_Work_Avalon
2015_275_18_1,Feather_On_Jazz_Jazz_In_The_Concert_Hall
2015_235_1_1,Integration_Report_1
2015_273_2_1_1,Cab_Calloway_Home_Movie_1
2015_273_2_2_1,Cab_Calloway_Home_Movie_2
ich die _
in dem Teil vor dem Komma mit .
und die _
im zweiten Teil nach der ersetzt werden soll Komma mit einem Leerzeichen.
ich jeweils einzeln mit erreichen kann:
sed -E -i '' 's/([0-9]{4})_([0-9]{3})_([0-9]{2})_([0-9])/\1.\2.\3.\4./'
für den ersten Teil und den zweiten Teil dann mit:
sed -E -i '' "s/_/ /g"
Aber ich habe gehofft, zu erreichen, es in einer einfacheren Art und Weise durch den Einsatz geschnitten mit sed, aber das funktioniert nicht:
cut -d "," -f 1 foo.txt | sed -E -i '' "s/_/./g" foo.txt && cut -d "," -f 2 foo.txt | sed -E -i '' "s/_/ /g" foo.txt
Nicht gut.
Also, gibt es eine Möglichkeit, dies awk
mit sed
oder vielleicht zu erreichen oder vielleicht etwas anderes, wo ich die ,
als Trennzeichen wie in cut
bin Behandlung?
gewünschte Ausgabe:
2015.275.14.1,Siboney by The Tailor Maids
Sie der erwarteten Ausgabe für detailliertere Informationen geben kann subtitute. – CWLiu
@CWLiu ok. Fertig – Bleakley