sed コマンドの作成

sed コマンドの作成

sed空白以外の最初の文字がaまたは+aのすべての行は、空白と-aで終わるように正規表現を作成する必要があります\\。たとえば、行は次のようになります。

    -u, -\hspace{.01cm}-unset name

次のようにする必要があります。

    -u, -\hspace{.01cm}-unset name \\

私はこれを試みます:

/^[       ]- s/$/ \\\\/g 

しかし、うまくいきません。どうすればいいですか?

ベストアンサー1

次のテストファイルを検討してください。

$ cat testfile 
-u, -\hspace{.01cm}-unset name
 u, -\hspace{.01cm}-unset name
+u, -\hspace{.01cm}-unset name

次のsedコマンドを検討してください。

$ sed '/^[[:blank:]]*[-+]/ s/$/ \\\\/' testfile
-u, -\hspace{.01cm}-unset name \\
 u, -\hspace{.01cm}-unset name
+u, -\hspace{.01cm}-unset name \\

/^[[:blank:]]*[-+]/-空でないか、タブ文字を含む最初の行を選択します+。これらの行の場合、代替コマンドが行の末尾に\\追加されます。

または、1つの出力のみを希望する場合\

$ sed '/^[[:blank:]]*[-+]/ s/$/ \\/' testfile
-u, -\hspace{.01cm}-unset name \
 u, -\hspace{.01cm}-unset name
+u, -\hspace{.01cm}-unset name \

これは[:blank:]、スペースとタブに一致するUnicode安全文字クラスです。

おすすめ記事