Heim > Fragen und Antworten > Hauptteil
Das folgende Dokument liegt bereits vor
<a id="" href=""></a>
<a id="" href=""></a>
<a id="" href=""></a>
Die Systemzwischenablage enthält folgenden Inhalt:
home
help
variables
Muss an der 15. Position jeder Zeile eingefügt werden, um das folgende Format zu bilden
<a id="" href="">home</a>
<a id="" href="">help</a>
<a id="" href="">variables</a>
如果vim不行,用awk可以吗?
Diese Antwort ist nicht gut,
Zuerst eintreten
home
help
variables
Dann verwenden Sie s
命令
输入 :%s/^/<a id="" href="">/g
回车
再输入 :%s#$#</a>#g
Enter
Wenn ich weiter gehe, muss ich von dieser Basis ausgehen
<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>
你如何快速搞定??
迷茫2017-05-16 16:35:48
先输入
home
help
variables
然后使用 s
命令
输入 :%s/^/<a id="" href="">/g
回车
再输入 :%s#$#</a>#g
回车
PHP中文网2017-05-16 16:35:48
对于第一个需求,不需要替换,可以这样实现:
图片比较大,如果加载不出来,这里是原地址
操作顺序:
光标移到第一行的 "" 的 "<" 位置,Ctrl+v
进入列选择模式,jj$
选中所有的 </a>
,然后 d
光标移至 "home" 那一行,Shift + v
进入行选择模式,jj
选中三行,然后 :right
,回车
$
把光标移至 "home" 结尾,按 p
粘贴
gv
选中所有,然后 :left
,回车
光标在第一行 "home" 的 "h" 上,Ctrl + v
进入列选择模式,jj$y
复制三行
gg$
光标移至第一行末尾,然后 p
第二个需求同理,剪切一下 id=""
第二个引号以及后面内容就行了。第三个需求,暂时想不出更好的方法
PHP中文网2017-05-16 16:35:48
可以用 Bash+Sed可以处理,不过这样处理就像是用程序语言处理一样
#! /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
备注:test.txt是要处理的源文件,sd.f是用程序生成的存放sed处理命令的文件。sd.in是存放的变量值,即home,help……三个值
世界只因有你2017-05-16 16:35:48
# 光标定位到第一行 a 标签
qa # 开始录制宏
<n>jyw # 复制要插入的文本
<n>kf>p # 回到对应到 a 标签,找到对应到位置,粘贴
j0 # 光标下移一行
q # 结束录制
2@a # 重播宏
# 上面的 <n> 是个数字,取决于你第一行 a 标签与第一行待插入文本之间的行数