-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. 用Perl插入MySQL
- 3. sql - 插入兩行之間?
- 4. MySQL行插入兩次
- 5. Perl數據解析和插入行
- 6. Vb.net插入行語句執行兩次
- 7. 在兩行之間插入行
- 8. 插入兩行或多行到視圖
- 9. stmt->執行插入兩行
- 10. Perl DBI插入並選擇
- 11. Perl MySQL - 插入查詢
- 12. 使用PERL將BOM插入CSV文件
- 13. 使用Perl API使SQlite3插入更快
- 14. 批量插入Oracle XMLTYPE使用Perl
- 15. 在Perl堆中插入數組引用
- 16. 如何使用XML :: Writer插入XML perl
- 17. 將兩個數組插入到一個html表的perl列中
- 18. 插入兩行:一次插入失敗無
- 19. 在Perl中,我如何加入前兩行輸入?
- 20. mysqli的插入執行兩次
- 21. SQL插入執行兩次,php
- 22. php將數據插入兩行數組
- 23. SQL插入語句執行兩次
- 24. 在兩個單詞後插入新行
- 25. SQL插入查詢執行兩次
- 26. MYSQL避免插入同一行兩次
- 27. 在wordpress數據庫中插入兩行
- 28. 插入行,通過比較兩個表
- 29. Perl的Excel中 - 插入一個空行與行,從vairable
- 30. 插入件插入兩個表
-1,因爲這是一個「食譜」的問題在oneliner – Nikodemus