[20210301]第2行插入Y.txt

lfree發表於2021-03-01

[20210301]第2行插入Y.txt

--//前幾天做控制檔案序列號滿的恢復,連結
--// http://blog.itpub.net/267265/viewspace-2759215/ => [20210225]控制檔案序列號滿的恢復.txt
--// 輸出指令碼要在第2行插入Y,我採用手工加入,使用bash shell如何完成呢.
--// 沒事自己嘗試看看.

1.方法1:
--//最容易想到的是sed:
$ seq 6 | xargs -IQ echo -e "assign dba Q,1  kcvfh.kcvfhhdr.kccfhcsq=0x00007777\nsum apply dba Q,1" | sed '1aY'
assign dba 1,1  kcvfh.kcvfhhdr.kccfhcsq=0x00007777
Y
sum apply dba 1,1
assign dba 2,1  kcvfh.kcvfhhdr.kccfhcsq=0x00007777
sum apply dba 2,1
assign dba 3,1  kcvfh.kcvfhhdr.kccfhcsq=0x00007777
sum apply dba 3,1
assign dba 4,1  kcvfh.kcvfhhdr.kccfhcsq=0x00007777
sum apply dba 4,1
assign dba 5,1  kcvfh.kcvfhhdr.kccfhcsq=0x00007777
sum apply dba 5,1
assign dba 6,1  kcvfh.kcvfhhdr.kccfhcsq=0x00007777
sum apply dba 6,1

2.方法2:
--//awk,我最不熟悉的就是awk,平時我就不大喜歡用它,語法也不是很熟.
$ seq 5| awk "{if (NR==2) print \"Y\n\" \$0 ;else  print \$0 }"
1
Y
2
3
4
5
--//以上是windows下使用cygwin的寫法有點變態.在linux下嘗試看看.
$ seq 5| awk '{if (NR==2) print "Y\n" $0 ;else  print $0 }'
1
Y
2
3
4
5

3.方法3:
--//paste+sed:
$ paste -d"\n" <(seq 5 ) <(echo Y) |sed '/^\s*$/d'
1
Y
2
3
4
5

4.方法3:
--//vim可行嗎?嘗試看看.
$ seq 5 | vim - -esbnN -c '1s/^.*$/&^MY/' -c 'w!/dev/stderr|q!' 2>&1 >/dev/null
1
Y
2
3
4
5
--//應該有更好的寫法:我參考連結:https://blog.robertelder.org/use-vim-inside-a-unix-pipe-like-sed-or-awk/
--//想想我雖然經常使用vim,但是並不熟悉ex一些命令.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2760137/,如需轉載,請註明出處,否則將追究法律責任。

相關文章