テキストファイルで4桁の数字で始まる行をインデントしようとしています。数字で始まるテキストファイルの行をインデントする
私はこのコマンドを試しましたが、これは動作しますが、数字で始まる行をインデントする方法はどうでしょうか。
sed 's/^/ /' somefile
私は上記のコマンドを試しましたが、すべてをインデントします。
テキストファイルで4桁の数字で始まる行をインデントしようとしています。数字で始まるテキストファイルの行をインデントする
私はこのコマンドを試しましたが、これは動作しますが、数字で始まる行をインデントする方法はどうでしょうか。
sed 's/^/ /' somefile
私は上記のコマンドを試しましたが、すべてをインデントします。
あなたは 書き込みs///
コマンドの前に、数字で始まる行だけを選択するフィルタを追加することができます。
sed -e '/^[0-9]/s/^/ /' somefile
を、あなたの入力はcat -n
の出力から来て、 た印刷物行は番号が付けられていますが、行は番号で始まらず、左側にスペースが入ります。 行をインデントする場合は、のスペースが0以上のスペースで始まり、その後に番号が続く場合は、フィルタを調整する必要があります。 これは単に*
(スペースと*
)を挿入するの問題です:
sed -e '/^ *[0-9]/s/^/ /' somefile
あなたがそうのように、4つのスペースで番号の前にスペースやタブ文字を置き換えるために試みることができます。
sed 's/^[ \t]*\([0-9]\+.*\)/ \1/' file
そして、あなたのファイルはcat -n
の出力であるため、実際にはすべての行が数字で始まるので、番号を確認する必要はありません。
sed 's/^[ \t]*\(.*\)/ \1/'
これは何もしないようです。 –
これは動作しますが、番号の付いたファイルでは表示されません。この例は私の元の質問に掲載されています。私はcat -nファイル>ファイルアウトで作成されたファイルを持っています –
sed -e '/^[0-9]/s/^//' output13 = works-1空白の前に0-9 –