マンガでよめる痔のこと・薬のこと

ファイル名に"/"(スラッシュ)が入っているので、削除したいのですが、どうすればいいのでしょうか?

sed を使って消そうと思ったのですが、文字を括るのに"/"を使うので、うまくいきませんでした。

まず、以下のコマンドでファイル名をaa.lst に入れ、その中に入っているスラッシュを消そうとしています。

ls > aa.lst

A 回答 (3件)

「文字を括るのに"/"を使うので」



これをやめればいいだけだと思います。
「/」を使うのはただの慣例に過ぎません。

No2.さんの例をお借りして書き直せばこんな感じになります。
sed 's|/||g' aa.lst
もちろん「\」でエスケープしても対応可能ですが、こちらのほうがすっきり見やすくかけると思います。


「s」のあとの文字を区切り文字と判断し、それがセットで使われていれば問題ありません。極論を言うと以下のようにも書けます。
sed 'ss/ssg' aa.lst
sed 's"/""g' aa.lst
ただ、何のことやら分かりにくくなってしまうので「/」か「|」の使用をお勧めします。

この回答への補足

スラッシュは慣例なんですね。
わかりやすい回答ありがとうございます。
助かりました。

補足日時:2011/11/01 09:09
    • good
    • 0

sedで"/"を文字列として扱う場合には、\(←半角バックスラッシュ。

¥(←これは全角だけど、実際には半角の円マーク))でエスケープすれば大丈夫です。
たとえば、
% sed 's/\//:/g' aa.lst
とすると、aa.lstの中の「/」が「:」に置換されます。
今回の場合は/を消したい訳ですから、
% sed 's/\///g' aa.lst
で行けると思います。

以上、ご参考まで。

この回答への補足

バックスラッシュが、スラッシュになるんですね。
ご回答ありがとうございます。

補足日時:2011/11/01 09:08
    • good
    • 0

うん? そもそも, どうやったら「ファイル名に"/"(スラッシュ)が入っている」という状態になるんでしょうか?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルのデータから「/」を抜く方法

エクセルに、「2001/01/01」や「2005/02/02」などの年のデータがあり、これらから「/」のみを抜いて、「20010101」「20050202」という
形式に変換したいのですが、方法がわかりません。置換えで、検索する文字列「/」、置換え後の文字列「空白」ではうまく変換できませんでした。

Aベストアンサー

多分セルの書式設定で表示形式で日付を選択しているのだと思います。

書式設定で表示形式を yyyymmdd に変更するとお望みの表示になるとは思いますが、中身のデータはシリアル値となっているはずなので、20010101でVLOOKUPなどの呼び出しは出来ません。
文字列として20010101と入力した場合はその数値でVLOOKUPや検索可能になりますが、日付としての検索はそのままでは出来なくなります。


人気Q&Aランキング