Text-Processing
重複線條並使它們獨一無二?
我有以下文本行結構:
3923 001 L05 LV,L05 RM 3923 002 L12 RA,L12 LA 3923 003 I06 ALL 3923 004 G04 RV,Z09 ALL
但我需要這個:
3923 001 L05 LV 3923 001 L05 RM 3923 002 L12 RA 3923 002 L12 LA 3923 003 I06 ALL 3923 004 G04 RV 3923 004 Z09 ALL
這可以用正則表達式嗎?
基本上我需要每行複制它包含“,”的次數,然後從第 10 個字元開始變得唯一;如果我能完成第一部分,那麼只需複制每行 x 逗號的數量,我可以手動清理其餘部分
鑑於您的範例格式,這應該適用於初始大空間之後的任意數量的逗號分隔字元串(如果它是一個選項卡,只需將第二個空格更改
s///
為\t
sed ':;h;s/,.*//;p;x;s/ [^,]*,/ /;t;d' file 3923 001 L05 LV 3923 001 L05 RM 3923 002 L12 RA 3923 002 L12 LA 3923 003 I06 ALL 3923 004 G04 RV 3923 004 Z09 ALL
如果你想要標籤然後
如果要將選項卡寫為 \t,可以使用 $ ’’ quotes: sed $ ‘:;h;s/,.*//;p;x;s/\t
$$ ^, $$*,/ /;t;d’。或者只是插入一個文字選項卡(對於 bash,您需要輸入 control-v 才能按字面意思輸入)。. —托比·斯佩特