Unix bash Sed コマンドが 1 つのファイルに結合される

Unix bash Sed コマンドが 1 つのファイルに結合される

次の不要な文字で区切られた文字列を含むファイルがあります。

  1. <
  2. >
  3. |
  4. <スペース>

次のようになります。

...  > Test Item|Test Item ...

~上...楕円は連続を表します。ファイルは1行だけで構成されます。

文字列を区別するために単一の文字列のみを使用するようにファイルを変更したいと思います。<スペース>性格。たとえば、

... Test Item Test Item ...

私はsed以前試しました:

sed -e 's/< >*| */|//g' filename

ただし、次のエラーメッセージが返されました。

sed: 0602-404 Function s/<  *| */|//g cannot be parsed.

何をすべきか?

ベストアンサー1

次の方法を試してください。

sed -e 's:<>\s\|.*:Replaced:g' filename

結果は次のとおりです。

$ echo "<> |" | sed -e 's:<>\s\|.*:Replaced:g'
Replaced

単に削除するには、Replacedコマンドからその単語を削除します。

<記号との間にスペースがある場合は、に>置き換える必要があります。<><\s>

質問を更新した後:

$ cat filename
  > Test Item|Test Item
  < Test Item|Test Item

$ cat filename | sed -E 's:[<>]\s(.*)\|(.*)$:\1 \2:g'
  Test Item Test Item
  Test Item Test Item

おすすめ記事