diary/Kojima/2010-09-05
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[diary/Kojima]]
・Shellのクォート
自分で作るファイルではそんな記号は使わないので気にしてい...
いろんな記号を含むファイル名が届くことがあるので、「うー...
最近、気がついたのが ' や " を含むファイル名の処理で、'(s...
と記憶しているのだけど、' を含む文字列を ' で括るのはうま...
$ echo "ABC'D"
ABC'D
$ echo 'ABC'D'
> bash: unexpected EOF while looking for matching `''
bash: syntax error: unexpected end of file
まぁ、'..' の中に ' があると、文字列中の ' で最初の ' が...
この文字列中の ' はエスケープとかも効かない感じ。
$ echo 'ABC\'D'
> bash: unexpected EOF while looking for matching `''
bash: syntax error: unexpected end of file
$ echo 'ABC\\\'D'
> bash: unexpected EOF while looking for matching `''
bash: syntax error: unexpected end of file
まぁ、' はその内部の特殊記号を一切展開しない、というルー...
利用できなくなるから、そうすると、' を含む文字列を ' ... ...
具体的には、YouTubeからダウンロードしてきたファイル名を f...
コードを Python で書いてみたのだけど、YouTubeに登録されて...
特殊記号を展開しないようにして file コマンドに食わせてい...
まぁ、最初の例のように " でクォートしてやれば ' も問題な...
みたいな処理で当面はしのげそうだけど、ファイル名中に ' と...
原理的には、" でクォートして、ファイル名中の " は \ でエ...
事前にそういうルールを書くよりは、実際にそんなファイル名...
- シングルクォートの前に$を付ければ良いです。
$ echo $'ABC\'D$EFGH"IJKL"'
ABC'D$EFGH"IJKL"
"\'"でシングルクォート,"\t"でタブ,"\n"で改行などを表現...
- へー、これは知らなかったけど、bash の拡張機能っぽい?
% echo $'ABC\'D$EFGH"IJKL"'
変数名が不正ですー.
% bash
$ echo $'ABC\'D$EFGH"IJKL"'
ABC'D$EFGH"IJKL"
インストーラやpkgtool類はashレベルの機能しか使えないから...
- おそらく,cshでは使えない機能だと思います。別解として,...
#!/bin/sh
hoge=`cat <<- "EOF"
ABC'D $EFGH "IJKL"
EOF
`
echo "$hoge"
こちらは,文字によってエスケープするかどうか気にしなくて...
- 私の場合こういうケースでは、全体をシングルクオートで括...
He said "It's $250".
↓
'He said "It'"'"'s $250".'
つまり、 foo'bar → 'foo' + "'" + 'bar' って感じですね。可...
- これは面白いアイデアですね。Pythonで書くと、
def check_quote(file):
quoted_file = file.replace("'", "'\"'\"'")
return "'" + quoted_file + "'"
みたいな感じでよさそう。 -- [[kojima]] &new{2010-09-08 (...
- Perlで書いてみました。こんな感じかな。
sub shquote {
my($word) = shift;
$word =~ s/('+)/'"$1"'/g;
return "'$word'";
}
シングルクオートが連続して現れた場合は、まとめてクオート...
終了行:
[[diary/Kojima]]
・Shellのクォート
自分で作るファイルではそんな記号は使わないので気にしてい...
いろんな記号を含むファイル名が届くことがあるので、「うー...
最近、気がついたのが ' や " を含むファイル名の処理で、'(s...
と記憶しているのだけど、' を含む文字列を ' で括るのはうま...
$ echo "ABC'D"
ABC'D
$ echo 'ABC'D'
> bash: unexpected EOF while looking for matching `''
bash: syntax error: unexpected end of file
まぁ、'..' の中に ' があると、文字列中の ' で最初の ' が...
この文字列中の ' はエスケープとかも効かない感じ。
$ echo 'ABC\'D'
> bash: unexpected EOF while looking for matching `''
bash: syntax error: unexpected end of file
$ echo 'ABC\\\'D'
> bash: unexpected EOF while looking for matching `''
bash: syntax error: unexpected end of file
まぁ、' はその内部の特殊記号を一切展開しない、というルー...
利用できなくなるから、そうすると、' を含む文字列を ' ... ...
具体的には、YouTubeからダウンロードしてきたファイル名を f...
コードを Python で書いてみたのだけど、YouTubeに登録されて...
特殊記号を展開しないようにして file コマンドに食わせてい...
まぁ、最初の例のように " でクォートしてやれば ' も問題な...
みたいな処理で当面はしのげそうだけど、ファイル名中に ' と...
原理的には、" でクォートして、ファイル名中の " は \ でエ...
事前にそういうルールを書くよりは、実際にそんなファイル名...
- シングルクォートの前に$を付ければ良いです。
$ echo $'ABC\'D$EFGH"IJKL"'
ABC'D$EFGH"IJKL"
"\'"でシングルクォート,"\t"でタブ,"\n"で改行などを表現...
- へー、これは知らなかったけど、bash の拡張機能っぽい?
% echo $'ABC\'D$EFGH"IJKL"'
変数名が不正ですー.
% bash
$ echo $'ABC\'D$EFGH"IJKL"'
ABC'D$EFGH"IJKL"
インストーラやpkgtool類はashレベルの機能しか使えないから...
- おそらく,cshでは使えない機能だと思います。別解として,...
#!/bin/sh
hoge=`cat <<- "EOF"
ABC'D $EFGH "IJKL"
EOF
`
echo "$hoge"
こちらは,文字によってエスケープするかどうか気にしなくて...
- 私の場合こういうケースでは、全体をシングルクオートで括...
He said "It's $250".
↓
'He said "It'"'"'s $250".'
つまり、 foo'bar → 'foo' + "'" + 'bar' って感じですね。可...
- これは面白いアイデアですね。Pythonで書くと、
def check_quote(file):
quoted_file = file.replace("'", "'\"'\"'")
return "'" + quoted_file + "'"
みたいな感じでよさそう。 -- [[kojima]] &new{2010-09-08 (...
- Perlで書いてみました。こんな感じかな。
sub shquote {
my($word) = shift;
$word =~ s/('+)/'"$1"'/g;
return "'$word'";
}
シングルクオートが連続して現れた場合は、まとめてクオート...
ページ名: