簡體   English   中英

如何使用bash用linux中的空格替換csv文件中的第三個逗號?

[英]How to replace the third comma in a csv file with a space in linux using bash?

我有一個表格文件,其中的列用空格分隔。 我編寫了以下 bash 腳本來將空格轉換為逗號:

#!/bin/bash
for f in /home/foo/*; do
  i=`basename $f`
  i2=${i%.*}
  cut -f 1,2,3,4 < $f | tr -s [:blank:] ',' > $i2.csv
done

但是我錯過了我的日期時間在日期和時間之間有一個空格的東西,現在那里有一個逗號。 日期時間的逗號是第三個,有沒有辦法用linux中的空格替換所有行的第三個逗號?

sed s命令有一個標志來指定將命令應用於哪個正則表達式:

sed 's/,/ /3' infile

修改每一行中的第三個,並用空格替換它。

要在所有sed實現中工作,您可以使用:

sed -r 's/^(([^,]*,){2}[^,]*),/\1 /' infile

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM