次のファイルがあります。
AAAA
BBBB
CCCC
DDDD
etc
単語は別の行にあります。引用符を使用して追加したいですtr
。
だから、次のことを試しました。
1)各単語の先頭に引用符を追加します。'AAAA
tr '^\w$' '\'\w$' <file.txt
動作しませんtr '^\w$' ''\w$' <file.txt
動作しません
上記の両方の状況は、コマンドラインがハングする原因になります。
2)最後に引用符を追加するために、次のことを試しました。
tr '\n' ''\n' <file.txt
ただし、これは機能せず、コマンドラインが中断されます。
なぜこれらの正規表現がで動作しないのですかtr
?
ベストアンサー1
このうち複数を交換することはできませんtr
。私はsed
代わりにこれを行います。
はい
$ sed "s/^/'/" file.txt
'AAAA
'BBBB
'CCCC
'DDDD
各行の先頭(^
)を見つけて一重引用符()に置き換えることを意味します'
。
「word」を一重引用符で囲むには、次の形式のコマンドを使用できます。
$ sed "s/\(.*\)/'\1'/" file.txt
'AAAA'
'BBBB'
'CCCC'
'DDDD'
今回は、その行のすべての内容を一時変数(\1
)に保存します。次に、その行をthisに置き換えます'\1'
。
このコマンドは次のように省略できます。 GNU固有のスイッチの使用:
$ sed -r "s/^(.*)$/'&'/" file.txt
'AAAA'
'BBBB'
'CCCC'
'DDDD'