次の形式の複数行のタイムスタンプを含む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
だが、cut
HHなどの特定の場所だけを印刷することができます。
しかし、新しいファイルを作成せずにその行のHHのみを削除するにはどうすればよいですか?
ベストアンサー1
ただ使用してくださいsed
:
sed -i.bak 's/[0-9]\{2\}.//' myfile
これにより、ピリオドが付いた2つの開始数字が削除され、ファイルが置き換えられ、元のファイルがバックアップ(myfile.bak
)として保存されます。