プログラムでこのテキストファイルを変更する方法
put returns between paragraphs#
20170218
for linebreak add 2 spaces at end# blah
_italic_ or **bold**#
20170219
20170220#
201702#21
この問題を解決するには、sedなどのツールを使用しますか?
put returns between paragraphs#141
20170218
for linebreak add 2 spaces at end#142 blah
_italic_ or **bold**#143
20170219
20170220#144
201702#14521
ベストアンサー1
sedは技術的に可能ですが(チューリング完全)、sedには算術演算がないため、非常に難しいです。これがawkの仕事です。
各行の最初の行だけを置き換えるには、置換の後に数字を増やすように#
指示します。 awkは整数を文字列の10進表現に自動的に変換します。#
#
awk -v n=141 '/#/ {sub(/#/, "#" (++n))}'
すべての文字を置き換える#
最も簡単な方法は、#
フィールド区切り文字を作成し、最初のフィールドを除く各フィールドの先頭に数字を追加することです。
awk -v n=141 -F '#' '{for (i=2; i<=NF; i++) $i = (++n) $i}'