ラベル 空白 の投稿を表示しています。 すべての投稿を表示
ラベル 空白 の投稿を表示しています。 すべての投稿を表示

2018年12月6日木曜日

シェル 引用符で囲まれた文字列内の空白について

2018 Dec. 06.

bash上で 'ls -l'という文字列を格納した変数とディレクトリを格納した変数をスペースで区切って次のようにシェルに入力すると"ls -l: コマンドが見つかりません"となる。
一方、変数を引用符で囲ますにシェルに与えると"ls -l"の結果が出力される。
シェルにおける空白の解釈
・クォートで囲まれた文字列内の空白は単なる文字(変数文字列のトークンの一部)
・シェルにとって、引用符に囲まれていない空白は文字ではなく区切り記号

$ 'ls -l' '/'
ls -l: コマンドが見つかりません

$ "ls -l" "/"
ls -l: コマンドが見つかりません

$ s1='ls -l'
$ s2='/'
$ "$s1" "$s2"
ls -l: コマンドが見つかりません

$ s1='ls -l'
$ s2='/'
$ $s1 $s2
(ls -lの結果が出力される)

2018年10月26日金曜日

"ls -l"出力からファイルサイズ列を取り出す

2018 Oct. 26.


$ ls -l | awk 'NR > 1 ' | sed -e "s/[ $'\t'][ $'\t']*/ /g" | cut -d " " -f 5

  [ $'\t'] : スペースもしくはタブ($'\t')