テキストファイルの特定のフィールド範囲の選択

テキストファイルの特定のフィールド範囲の選択

テキストファイルがありますFilenr.lis、含まれる

#  1  2016-05-31-1003-57S._BKSR_003_CM6
#  2  2016-06-01-2255-54S._BKSR_003_CM6
#  3  2016-06-05-1624-57S._BKSR_003_CM6
#  4  2016-06-07-1914-55S._BKSR_003_CM6
.
.
.

など。

私の出力は次のようになります

2016-05-31-10-03
2016-06-01-22-55
2016-06-01-22-55
2016-06-07-19-14

これを試しましたが、その形式はありません。

awk -F'-' '{print "2016""-"$2"-"$3"-"$4}' filenr.lis

ベストアンサー1

アッ

awk '{print substr($3,0,13)"-"substr($3,14,2)}' file.txt
2016-05-31-10-03
2016-06-01-22-55
2016-06-05-16-24
2016-06-07-19-14

sed

sed 's/^......\(.............\)\(..\).*/\1-\2/' file.txt

sed、しかしもう少しスマートになった

sed 's/^.\{6\}\(.\{13\}\)\(..\).*/\1-\2/' file.txt

真珠

perl -pe 's/^.{6}(.{13})(..).*/$1-$2/' file.txt

おすすめ記事