[英]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.