各行はセミコロンを使用して部分で区切られます。
各セクションにはさまざまな形式の日付があります。
行には数字、文字、スペースを含めることができます。
パート6で日付形式を変更しようとしています。現状はそうです
12 Nov 1999
しかし、私はその年が必要です。それでは、他の部分に触れることなく、行の6番目の部分から仕事と月をどのように省略できますか?
12/31/1921;12 nov 1998; 13 September 2019; 13 Sep 2018; 12 August 1998; 12 Nov 1999; 27 November 1999; 13 Dec 1999; 14 December 1999; 15 D 1999
こうなる
12/31/1921;12 nov 1998; 13 September 2019; 13 Sep 2018; 12 August 1998;1999; 27 November 1999; 13 Dec 1999; 14 December 1999; 15 D 1999
答え1
awk -F ';' 'BEGIN { OFS=FS } { sub(".* ", "", $6); print }' file
上記は、各行を区切られた一連のfile
フィールドに解析します。;
各行の6番目のフィールドを変更する置換を適用します。変更には、フィールドデータのすべての内容を最後の空白文字まで削除する操作が含まれます。 6番目のフィールドを変更したら、変更された行を印刷します。
答え2
awk
とともにsubstr
機能:
awk -F';' '{ $6 = substr($6, length($6)-3) }1' OFS=';' inputfile