#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を使用しています。最初の数回の試みでは、cat
とsed
。私は文法に慣れていないので、いくつかの例を挙げてみましょう。
答え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-