students.txt
次の形式のデータを含むファイルがありますSurname, Forename: day.month.year: Degree
。
Smith, John: 15.01.1986: MSc IT
Taylor, Susan: 04.05.1987: MSc IT
Thomas, Steve: 19.04.1986: MSc MIT
Sennick, Joseph: 01.12.1987: MSc IT
すべての行を形式で返しようとしますForename,Surname: day.month.year
が、MSc
研究中の学位は返しません。これまで私は以下を持っています:
sed -e 's/\(.*\),(.*\)/\2/\1/' students.txt
これは何の問題ですか?
ベストアンサー1
次の解決策は普遍的ではありませんが、データ型が同じままの場合は機能します。
sed -r 's/^([A-Za-z]+), ([A-Za-z]+): (([0-9]{2}\.){2}[0-9]{4}): .*$/\2,\1: \3/' students.txt