2016-05-02 6 views
-1

私はUNIXのボックスで46番目の文字(N)を空白でawkコマンドに置き換える100個のエントリを以下のファイルに入れました。誰もがこれを行うための最善の方法を知っていますか?Awkはn番目の文字を空白の値で置き換えます

TESTENTRY1||||||N|Y|N|OFF||N||||N|L|N|0|N|0|N|N||||A|0||0||N|N|N|Y|N||0|N|N||0|||N|N|N|N|N 
TESTENTRY2||||||N|Y|N|OFF||N||||N|L|N|0|N|0|N|N||||A|0||0||N|N|N|Y|N||0|N|N||0|||N|N|N|N|N 

だからそれは以下のようになります。レコードが読み込まれる前に

TESTENTRY1||||||N|Y|N|OFF||N||||N|L|N|0|N|0|N|N||||A|0||0||N|N|N|Y|N||0|N|N||0|||N||N|N|N 
TESTENTRY2||||||N|Y|N|OFF||N||||N|L|N|0|N|0|N|N||||A|0||0||N|N|N|Y|N||0|N|N||0|||N||N|N|N 

答えて

2
$ awk 'BEGIN { FS=OFS="|" } { $46 = "" }1' nnn.txt 
TESTENTRY1||||||N|Y|N|OFF||N||||N|L|N|0|N|0|N|N||||A|0||0||N|N|N|Y|N||0|N|N||0|||N||N|N|N 
TESTENTRY2||||||N|Y|N|OFF||N||||N|L|N|0|N|0|N|N||||A|0||0||N|N|N|Y|N||0|N|N||0|||N||N|N|N 

BEGIN { FS=OFS="|" }は、垂直バーに入力と出力のフィールド区切り文字を設定します。

{ $46 = "" }は、各レコードで46番目の列を空に設定します。

末尾の1は、結果のレコードを出力に出力します。

+0

偉大な回答 - ありがとう! – Jaron787

関連する問題