-2
A
回答
1
您要添加的东西在以冒号结尾的行之后,或者在第2行之后?
如果在第2行之后,您可以split("\n", $string)
获取一行数组,将新行拼接到位置2的数组中,然后join("\n", @array)
将字符串取回。
如果以冒号结尾的行后面,可以使用正则表达式:s/(:\n)/\1YOUR_NEW_LINE_HERE\n/
。
+0
我想以冒号结束的行后添加一些容易解决的文件。谢谢 –
1
由于在每行以冒号结尾后,您不指定要放置的内容,所以我创建了一个表来表示一些通用决策以及有些灵活的处理。
# create a table
my %insert_after
= (abcd => "abcd: abcd\n"
, defg => "defg: hijk\n"
);
# create a list of keys longest first, and then lexicographic
my $regs
= '^('
. join('|', sort { length $b <=> length $a or $a cmp $b }
keys %insert_after
)
. '):$'
;
my $regex = qr/$regs/;
# process lines.
while (<>) {
m/$regex/ and $_ .= $insert_after{ $1 } // '';
print;
}
在当前行之后插入一行很简单,只需将该文本附加到当前行并输出即可。
1
perl -p -i.bck -e "if ($last ne ''){ $_=~s/.*/$last $&\\n$&/; $last=''} elsif (/:/) {$last = $_;chomp($last);} else {$last = '';}" test
测试是有问题
+0
运行那个单行程序,我在-e行1附近得到错误'语法错误“(ne” 在-e行1附近的语法错误“;}”' – mrk
相关问题
- 1. 插入用Perl
- 2. MySQL行插入两次
- 3. sql - 插入两行之间?
- 4. stmt->执行插入两行
- 5. 在两行之间插入行
- 6. Vb.net插入行语句执行两次
- 7. Perl MySQL - 插入查询
- 8. Perl DBI插入并选择
- 9. 使用Perl API使SQlite3插入更快
- 10. 如何使用XML :: Writer插入XML perl
- 11. 在Perl堆中插入数组引用
- 12. 在Perl中,我如何加入前两行输入?
- 13. 在两个单词后插入新行
- 14. MYSQL避免插入同一行两次
- 15. SQL插入查询执行两次
- 16. php将数据插入两行数组
- 17. SQL插入语句执行两次
- 18. 插入两张表
- 19. 如何使用一个按钮插入两行Laravel使用ajax
- 20. 在插入两行中的一行时捕获两行之间的关系
- 21. Perl DBI脚本可以在db2上执行“缓冲插入”吗?
- 22. Perl在每个}之间插入新行{match
- 23. 通过Perl在文本文件中插入一行失败
- 24. 在perl中加入两个文件(表)
- 25. 使用Perl中的数组插入1行并使用大量列DBI
- 26. Perl命令行输入?
- 27. 如何使用awk为每个数据框插入两行?
- 28. 用插入行ID的名称插入新行和MKDIR
- 29. 用一个查询插入两个表
- 30. 使用两个sql插入事务
-1,因为这是一个“食谱”的问题在oneliner – Nikodemus