tr///で空文字への置換には、一工夫

またはまる。tr///では明示的に"\0"を指定しないと空文字への置換ができない。
追記:tr///dオプションでおk…だがtr///の使い方としてそもそも置換後のリストがなきゃ変。→http://builder.japan.zdnet.com/news/story/0,3800079086,20364034,00.htm

bash-3.2$ cat date.txt
"2008-05-16"

こういうテキストファイルの中の"-"を"/"に置き換えるならば、こう。

bash-3.2$ perl -pe 'tr/-/\//;' ./date.txt
"2008/05/16"

だから、空文字なら、こうでは?

bash-3.2$ perl -pe 'tr/-//;' ./date.txt
"2008-05-16"

いやいや、実はこうしないと。

bash-3.2$ perl -pe 'tr/-/\0/;' ./date.txt
"20080516"

……まあ、s///gでやりますけど。

bash-3.2$ perl -pe 's/-//g;' ./date.txt
"20080516"