区切り文字の前の最後の文字を削除

区切り文字の前の最後の文字を削除

入力ファイルの内容は次のとおりです。

header;header;header;header
2018/06/04;141000;bla;bla

希望の出力:

header;header;header;header
2018/06/04;1410;bla;bla

次のコマンドがありますsed

sed -i 's/.//16' $inputFile

しかし、次のように私のタイトルを削除します。

header;hder;header;header
2018/06/04;1410;bla;bla

これを防ぐために、以下を試しました。

tail -n +2 | sed -i 's/.//16' $inputFile

しかし、うまくいきません。事前にありがとう

ベストアンサー1

使用awk:

awk -F ';' -v OFS=';' 'NR > 1 { sub("..$", "", $2) }; 1' <"$inputFile"

;これにより、最後の2文字が削除され、最初の行を除くすべての入力行の2番目の区切りフィールドが変更されます。

末尾を使用すると、各行1が出力されます(交換可能{ print })。

出力を新しいファイルにリダイレクトでき、後で元のファイルを置き換えることができます。

おすすめ記事