sedでファイルを操作する

sedでファイルを操作する

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

おすすめ記事