各行の特定のフレーズにタグを追加する

各行の特定のフレーズにタグを追加する

デフォルトでは、次のような行があります。

ILU1910\ilu0001 “ My hand is broken , ” said the sailor , “ and smoked the pipe . ” 
ILU1910\ilu0001 “ It is going make life harder for us , ” he said . 

私は彼らが次のように見えることを望みます:

<ignore>ILU1910\ilu0001</ignore> “ My hand is broken , ” said the sailor , “ and smoked the pipe . ” 
<ignore>ILU1910\ilu0001</ignore> “ It is going make life harder for us , ” he said . 

<ignore>デフォルトでは、各行の先頭にILU1910 / ilu0001があり、そのフレーズの先頭と末尾に追加したいと思います</ignore>

次のコマンドを使用して動作しようとしました。

cat file.txt | sed 's/^\([^A-Za-z0-9]\+ \)/<ignore>\1<\/ignore>/g'

しかし、これはうまくいかないようです。私はMacBookで端末を使用しています。

ベストアンサー1

使用は簡単ですsed

sed 's/ILU1910\\ilu0001/<ignore>&<\/ignore>/' file.txt

一致させるパターンは1つだけなので、使用すると簡単に一致させることができます&。使いたいcatなら

cat file.txt | sed 's/ILU1910\\ilu0001/<ignore>&<\/ignore>/'

あなたの試みで英数字以外のすべてをカバーしています[^A-Za-z0-9][^ ]*以下を使用して、空白以外のパターンでパターンを変更できます。

sed 's/^[^ ]*/<ignore>&<\/ignore>/' file.txt

おすすめ記事