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
答え1
次のことができます。
perl -i -pe 's/,(\t|$)/$1/g' file
これにより、カンマの後にスペース、タブ、改行文字が削除されます。
たとえば、他のフィールド区切り文字の場合は、次のようにします:
。
perl -i -F: -lane 's/,$// for @F; print join ":",@F' file
このコマンドはソースファイルを変更します、まず削除して-i
テストしてみてください。
答え2
答え3
以下は素晴らしいツアーコンテンツです。
perl -i -pe 's/,(?=\t|$)//g' file
または
perl -i -pe 's/,(?!\S)//g' file
または
単語ではなく境界を使用してください。
perl -i -pe 's/,\B//g' file