0

一部の文字を sed に置き換えたいのですが、特定の条件が満たされた場合に限ります。

そのため、文字列のどこかに出現する場合は、つまり\tに置き換える必要があります。\バックスラッシュと物理タブ付き。発生した場合\\tは、何もしないでください。

\tロジックは、前にないすべてを置き換えること\ですが、その正規表現の書き方がわかりません。そのようなこともあまり得意ではありませんsed

4

2 に答える 2

1

試す:

sed -r 's/^\\t|([^\\])\\t/\1\t/g' file

例:

$ cat file
hello\tworld
foo\\tbar
\tfirst
last\t
last\\t
\\tfirst


$ sed -r 's/^\\t|([^\\])\\t/\1\t/g' file
hello   world
foo\\tbar
        first
last
last\\t
\\tfirst
于 2013-03-19T14:39:10.920 に答える
0

一方通行:

sed 's/[^\\]\\t/\\      /' file

差し替え部分では「バックスラッシュ2つ+Ctrl-V+Tab」

于 2013-03-19T14:30:48.340 に答える