Text-Processing
如何在文件中的第三個製表符位置後用逗號替換製表符
我有製表符分隔的文本文件,每條記錄的欄位數都不相同。但是我想在文件中的第三個選項卡之後用逗號替換所有選項卡。
輸入
100 Apple COOK USA EUROPE CHINA 200 Micro BIIL UK INDIA 300 Saums Chul SK
要求輸出:
100 Apple COOK USA,EUROPE,CHINA 200 Micro BIIL UK,INDIA 300 Saums Chul SK
使用
awk
:awk 'BEGIN{OFS=IFS=" ";}{for(i=5;i<=NF;i++){$4=$4","$i;} print $1,$2,$3,$4}' file
您的案例的輸出將是:
100 Apple COOK USA,EUROPE,CHINA 200 Micro BIIL UK,INDIA 300 Saums Chul SK
awk 命令將從文件中逐行讀取。現在它將按原樣列印第一個第二個第三個單詞,但在第四個單詞之後它將用逗號連接它們。
試試這個,
sed -i 's#\t#,#4g' file 100 Apple COOK USA,EUROPE,CHINA 200 Micro BIIL UK,INDIA 300 Saums Chul SK
4g
用逗號替換每行中第 4 次出現的製表符。