cari

Rumah  >  Soal Jawab  >  teks badan

awk - Bagaimana untuk melakukan pengeditan berbilang baris dengan vim sambil memasukkan teks pada kedudukan menegak yang sama?

Sudah ada dokumen berikut

    
    <a id="" href=""></a>
    <a id="" href=""></a>
    <a id="" href=""></a>

Papan keratan sistem mengandungi kandungan berikut:

    home
    help
    variables
    
 

Perlu disisipkan pada kedudukan ke-15 setiap baris untuk membentuk format berikut

    <a id="" href="">home</a>
    <a id="" href="">help</a>
    <a id="" href="">variables</a>  
    
    如果vim不行,用awk可以吗?     

Jawapan ini tidak bagus,

Masuk dulu

home
help
variables

Kemudian gunakan s 命令
输入 :%s/^/<a id="" href="">/g 回车
再输入 :%s#$#</a>#g Masukkan

Jika saya pergi lebih jauh, saya perlu bermula dari asas ini

  
    <a id="" href="">home</a>
    <a id="" href="">help</a>
    <a id="" href="">variables</a>  
    
    形成下面的
    
    <a id="home" href="">home</a>
    <a id="help" href="">help</a>
    <a id="variables" href="">variables</a>  
    
    你又如何办?
    
    再走远一点
    <a id="home" href="home.html">home</a>
    <a id="help" href="help.html">help</a>
    <a id="variables" href="variables.html">variables</a>  
    
    你如何快速搞定??
    
伊谢尔伦伊谢尔伦2781 hari yang lalu957

membalas semua(7)saya akan balas

  • 滿天的星座

    滿天的星座2017-05-16 16:35:48

    Alihkan kursor ke kiri atas di hadapan rumah

    <C-v>jj$x<ESC>
    

    Alihkan kursor ke sebelum yang pertama </a>

    p
    

    balas
    0
  • 迷茫

    迷茫2017-05-16 16:35:48

    Masuk dulu

    home
    help
    variables
    

    Kemudian gunakan s 命令
    输入 :%s/^/<a id="" href="">/g 回车
    再输入 :%s#$#</a>#g Masukkan

    balas
    0
  • 高洛峰

    高洛峰2017-05-16 16:35:48

    Setelah melihat keperluan anda, saya rasa anda mungkin memerlukan pemalam coretan vim

    balas
    0
  • 習慣沉默

    習慣沉默2017-05-16 16:35:48

    Alihkan kursor ke yang pertama</a>之前:<c-v>jjjp

    balas
    0
  • PHP中文网

    PHP中文网2017-05-16 16:35:48

    Untuk keperluan pertama, tidak perlu menggantikannya, ia boleh dicapai seperti ini:

    Gambar agak besar Jika tidak boleh dimuatkan, ini alamat asalnya

    Jujukan operasi:

    1. Alihkan kursor ke kedudukan "<" "" dalam baris pertama, Ctrl+v memasuki mod pemilihan lajur, jj$ memilih semua < ; /a>, kemudian dCtrl+v 进入列选择模式,jj$ 选中所有的 </a>,然后 d

    2. 光标移至 "home" 那一行,Shift + v 进入行选择模式,jj 选中三行,然后 :right,回车

    3. $ 把光标移至 "home" 结尾,按 p 粘贴

    4. gv 选中所有,然后 :left,回车

    5. 光标在第一行 "home" 的 "h" 上,Ctrl + v 进入列选择模式,jj$y 复制三行

    6. gg$ 光标移至第一行末尾,然后 p

    第二个需求同理,剪切一下 id=""

  • 🎜Alihkan kursor ke baris "home", Shift + v untuk memasuki mod pemilihan baris, jj untuk memilih tiga baris, dan kemudian :right< /code> untuk memulangkan Kereta🎜 🎜🎜$ Gerakkan kursor ke hujung "home" dan tekan p untuk menampal🎜 🎜🎜gv Pilih semua, kemudian :left dan tekan Enter🎜 🎜🎜Kursor berada pada "h" "home" dalam baris pertama, Ctrl + v memasuki mod pemilihan lajur, jj$y menyalin tiga baris🎜 🎜🎜gg$ Gerakkan kursor ke penghujung baris pertama, kemudian p🎜 🎜Keperluan kedua adalah sama, cuma potong tanda petikan kedua id="" dan kandungan berikut. Keperluan ketiga, saya tidak dapat memikirkan cara yang lebih baik pada masa ini🎜

    balas
    0
  • PHP中文网

    PHP中文网2017-05-16 16:35:48

    Anda boleh menggunakan Bash+Sed untuk memprosesnya, tetapi ia seperti memprosesnya dalam bahasa pengaturcaraan

    #! /bin/bash
    i=1
    rm sd.f
    cat sd.in | while read LINE
    do
       echo "${i}s/>/>${LINE}/" >>sd.f
       #echo "${i}s/id=\"/id=\"${LINE}/" >>sd.f     #第二次处理
       #echo "${i}s/ref=\"/ref=\"${LINE}.html/" >>sd.f     #第三次处理
       ((i++))
    done
    #cat sd.f
    sed -f sd.f test.txt

    Catatan: test.txt ialah fail sumber yang akan diproses dan sd.f ialah fail yang dijana oleh program untuk menyimpan arahan pemprosesan sed. sd.in ialah nilai pembolehubah yang disimpan, iaitu rumah, bantuan... tiga nilai

    balas
    0
  • 世界只因有你

    世界只因有你2017-05-16 16:35:48

    # 光标定位到第一行 a 标签
    qa # 开始录制宏
    <n>jyw # 复制要插入的文本
    <n>kf>p # 回到对应到 a 标签,找到对应到位置,粘贴
    j0 # 光标下移一行
    q # 结束录制
    2@a # 重播宏
    
    # 上面的 <n> 是个数字,取决于你第一行 a 标签与第一行待插入文本之间的行数

    balas
    0
  • Batalbalas