ファイルの最初の部分の数値を計算結果に置き換えます。

ファイルの最初の部分の数値を計算結果に置き換えます。

次のファイルがあります。

     1 abcde
     2 00
     3 12
     4 12
     5 ghijkl
     6 jsaslm
     7 uawrns
     8 abcde
     9 \(%"!&/
    10 $!"$&/(
    90 !§%/(//

最初の「列」(たとえば、1、2などを含む数字)から3より大きいすべての数字を変更したいと思います。これは、3で割った数字を除いて(ただし3でなければならない)、数字をモジュロ3で計算した結果に置き換える必要があります。したがって、結果は次のようになります。

     1 abcde
     2 00
     3 12
     1 12
     2 ghijkl
     3 jsaslm
     1 uawrns
     2 abcde
     3 \(%"!&/
     1 $!"$&/(
     3 !§%/(//

形式は重要ではありませんが、上記の方法が好ましい。

私はLinuxを使用しています。

ベストアンサー1

更新された問題を解決するには、awkを使用してください。

awk '$1{$1=$1%3?$1%3:3}1' file

 1 abcde
 2 00
 3 12
 1 12
 2 ghijkl
 3 jsaslm
 1 uawrns
 2 abcde
 3 \(%"!&/
 1 $!"$&/(
 3 !§%/(//

おすすめ記事