ファイルからナノ秒を削除する方法

ファイルからナノ秒を削除する方法

ファイルの各行からナノ秒を削除する方法 データのファイル名は次のとおりです。テスト.csv

ip,time,name
1.1.1.1,2018-08-17 15:05:52:016469121,1.13.0-0007
1.1.1.2,2018-08-17 15:05:52:016469121,1.13.0-0007

答え1

努力する

sed 's/:[[:digit:]]*,/,/' file
ip,time,name
1.1.1.1,2018-08-17 15:05:52,1.13.0-0007
1.1.1.2,2018-08-17 15:05:52,1.13.0-0007

最後のコロン、数字の後の最後のコンマをコンマで置き換えます。

答え2

awk -F',' -vOFS=',' '{sub(/:[0-9]{9}$/, "", $2); print}' input.txt

出力:

ip,time,name
1.1.1.1 2018-08-17 15:05:52 1.13.0-0007
1.1.1.2 2018-08-17 15:05:52 1.13.0-0007

説明する

  • awk -F',' -vOFS=',' '{foo}' input.txtawkファイルに対して,コマンドを実行するためにフィールド区切り記号(および出力フィールド区切り文字)と共に使用されます。fooinput.txt
  • sub(/:[0-9]{9}$/, "", $2);:2番目のフィールドの場合、$2正規表現:[0-9]{9}$(たとえば、フィールドの末尾にある9つの連続した数字)を別のものに置き換えます。
  • print: 新しい行の印刷

関連情報