txtファイルの最初の行を+ 3列に変更します。

txtファイルの最初の行を+ 3列に変更します。

ここに画像の説明を入力してください。以下のtxtファイルがあります。

#A9999999999999              012021I                                   
0099999999    000000000099999999+000000000000000000-000000000000000000-  
0099999999    000000000099999999+000000000000000000-000000000000000000-  
0099999999    000000000099999999+000000000000000000-000000000000000000-  
0099999999    000000000099999999+000000000000000000-000000000000000000-

最初の行にさらに3つの列を作成したいと思います。

9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-
9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-
9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-
9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-

この例には、最初の行の値を含む3つの列が含まれています。含まれます。データ行。

ファイルの最初の部分を挿入している間、タブはいくつかのブラウザの構造をいくつか変更します。だからファイルレイアウトの写真を含めました。

私は現在Debianを使用しています。最初の数回の試みでは、catsed。私は文法に慣れていないので、いくつかの例を挙げてみましょう。

答え1

すべてのUnixシステムのすべてのシェルでawkを使用してください。

$ cat tst.awk
BEGIN { OFS="," }
NR==1 {
    pfx = substr($0,8,7) OFS substr($0,30,6) OFS substr($0,36,1)
    next
}
{
    gsub(/[+-]/,"& ")
    $1 = pfx OFS $1
    print
}

$ awk -f tst.awk file
9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-
9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-
9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-
9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-

関連情報