2016-08-09 10 views
-2

Ich habe einen Dateinamen in einem Format wie:Parst Dateiname in Bash-Skript

Master.csv-yyyy-mm-dd.txt 
example:- Master.csv.2016-07-06.txt 

ich aus, dass in folgendem Format String werden soll.

YY-MM 

bitte helft mir schnell

+0

echo $ {filename: 10: 12} aber es ist Ausgabe 16-07-06 ist. ich will nur 16-07. –

+0

[Was haben Sie bisher versucht?] (Http://whathaveyoutried.com) Bitte bearbeiten Sie Ihre Frage, um eine [mcve] des Codes anzuzeigen, mit dem Sie Probleme haben, dann können wir versuchen, mit dem spezifischen zu helfen Problem. Sie sollten auch [fragen] lesen. –

Antwort

1
date_temp=$(echo Master.csv.2016-07-06.txt | awk -F. '{print $3}') 
date -d"$date_temp" +%y-%m 
16-07 
+0

Kann ich es einem beliebigen Variablennamen zuweisen? wie folderName = date –

+0

ja, du solltest in der Lage zu tun –

+0

ja es funktioniert. danke –

1

dies versuchen;

ls M*.txt | awk -F. '{print substr($3,3,5)}' 

[email protected]:/tmp$ ls M*.txt 
Master.csv.2016-07-05.txt Master.csv.2016-07-06.txt 

[email protected]:/tmp$ ls M*.txt | awk -F. '{print substr($3,3,5)}' 
16-07 
16-07 

Wenn der Ordner den Dateinamen hallo_2016-07-06.txt enthält, können Sie dies versuchen;

ls *.txt | grep -oP '[\d]+-[\d]+-[\d]+' | awk -F- '{print substr($1,3,2)"-"$2}' 
+0

Schöne Antwort !! .. –

+0

wie in Variable zuweisen? und drucke diese Variable –

0

One-Liner mit Python:

echo 'Master.csv.2016-07-06.txt' | xargs -I{} python -c "import re; print re.search('\d{2}\-\d{2}', '{}').group(0)"