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安全文字クラスです。