私はこのテーブルの数字の後にタブを削除しようとしています。私はコマンドラインからフォーマットしています。以下は、問題のファイルから直接coipiedと貼り付け元のテーブルのデータを、次のとおりです。`sed`を使った不思議な動作
File Path Line Description
/home/nick/.bashrc 9 # TODO Chop this into code import files
/home/nick/.bashrc 204 # TODO Add $HOME/os-setup to OS installation disc
/home/nick/.bashrc 207 # TODO Custom power actions don't work; system tray notifications
パイプに、最終的なsed
コマンドを追加する場合はしかし、いくつかの奇妙な動作が発生します。次に、正規表現の最初の部分との一致を置き換え、
cat somefile.txt | column -tx -s : | sed -e 's/\([0-9]\{1,\}\)/\1/g'
File Path Line Description
/home/nick/.bashrc 9 # TODO Chop this into code import files
/home/nick/.bashrc 204 # TODO Add $HOME/os-setup to OS installation disc
/home/nick/.bashrc 207 # TODO Custom power actions don't work; system tray notifications
これは表の各列の番号を検出します。例として、以下sed
コマンドを考えます。マッチ全体が中括弧で囲まれているので、これはそれ自体で置き換えられて何も変わらないことを意味します。私はその後、同じsed
コマンドを実行してください、私はsed
出力も数試合を切り捨てるように思わ一致する正規表現に\t
文字、リテラルのタブを追加、しかし
、!以下を参照してください:
cat somefile.txt | column -tx -s : | sed -e 's/\([0-9]\{1,\}\)\t/\1/g'
File Path Line Description
/home/nick/.bashrc # TODO Chop this into code import files
/home/nick/.bashrc 20 # TODO Add $HOME/os-setup to OS installation disc
/home/nick/.bashrc 20 # TODO Custom power actions don't work; system tray notifications
なぜsed
は、各番号から最後の桁を切り捨てていますか? sed
さんはこれをどうやって止めることができますか?
\ tでsedコードを表示してください。 –
興味深い、再現できない –
@NickBull:ファイルはどこから来たのですか? – sjsam