trは正規表現で使用できますか?

trは正規表現で使用できますか?

次のファイルがあります。

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'

おすすめ記事