Text-Processing
如果文件在末尾,則從文件中的列中刪除逗號
我有一個製表符分隔的文件包含 19 列,其中一些列末尾包含逗號。如果它在最後,我想從所有列中刪除這些逗號。例子:
c1 c2 c3 c4 c5 re, f,f d,f, gf mk df df, df dl, df,
結果應該和保存在同一個文件中
c1 c2 c3 c4 c5 re f,f d,f gf mk df df df dl df
你可以這樣做:
perl -i -pe 's/,(\t|$)/$1/g' file
這將刪除任何逗號,後跟空格、製表符或換行符。
對於其他欄位分隔符,例如
:
,使用:perl -i -F: -lane 's/,$// for @F; print join ":",@F' file
這些命令將更改原始文件,刪除
-i
以首先對其進行測試。
要刪除每個欄位末尾的單個逗號:
perl -i -pe 's/,(\t|$)/$1/g' myfile
(\t|$)
匹配製表符或行尾。用給定的替換文本(這裡,,表示括號內的模式部分)替換s/…/…/g
模式的每個出現(這裡, )。不以逗號結尾的欄位與模式不匹配,因此無需修改即可列印出來。,(\t|$)``$1