行の特定の部分を削除

行の特定の部分を削除

次の形式の複数行のタイムスタンプを含むCSVファイルがあります。時:分:SS:Ms。
たとえば、

00.00.07.38    
00.00.08.13    
00.00.08.88

今回は私とは関係ないので削除したいです。 Bashを使用してファイル内のすべての行からHHを削除する方法

ファイルから1行ずつ読み取ることができます

while IFS=, read col1
do
    #remove HH from every line
    #awk -F '[.]' '{print $1}' <<< $col1 #only prints one portion of time
    #echo $col1 | cut -d"." -f2 | cut -d"." -f3 | cut -d"." -f4
done < $file

私は遊んawkだが、cutHHなどの特定の場所だけを印刷することができます。

しかし、新しいファイルを作成せずにその行のHHのみを削除するにはどうすればよいですか?

ベストアンサー1

ただ使用してくださいsed

sed -i.bak 's/[0-9]\{2\}.//' myfile

これにより、ピリオドが付いた2つの開始数字が削除され、ファイルが置き換えられ、元のファイルがバックアップ(myfile.bak)として保存されます。

おすすめ記事