タグ付けされた質問 「whitespace」

行または列に「空の」スペースを作成するスペース、タブ、または改行の組み合わせ

5
シェルスクリプトが空白またはその他の特殊文字で停止するのはなぜですか?
または、堅牢なファイル名処理およびシェルスクリプトで渡すその他の文字列の入門ガイド。 ほとんどの場合、うまく機能するシェルスクリプトを作成しました。ただし、一部の入力(たとえば、一部のファイル名)で停止します。 次のような問題が発生しました。 スペースを含むファイル名を持っていて、hello worldそれは2つの別個のファイルhelloとworld。 2つの連続したスペースを持つ入力行があり、入力で1つに縮小しました。 入力行から先頭と末尾の空白が消えます。 入力に文字の1つが含まれている場合、\[*?実際にはファイルの名前であるテキストに置き換えられることがあります。 入力にアポストロフィ'(または二重引用符")が含まれており、その時点以降は状況がおかしくなりました。 入力にバックスラッシュがあります(または、Cygwinを使用していて、ファイル名の一部にWindowsスタイルの\区切り文字があります)。 何が起こっており、どうすれば修正できますか?

10
いくつかの出力の各行から先頭と末尾の空白をトリミングするにはどうすればよいですか?
出力の各行から先頭と末尾のスペースとタブをすべて削除したいと思います。 trim出力をパイプすることができるような簡単なツールはありますか? サンプルファイル: test space at back test space at front TAB at end TAB at front sequence of some space in the middle some empty lines with differing TABS and spaces: test space at both ends

3
Vimが貼り付けたコードを誤ってインデントするのはなぜですか?
Vimでこのスクリプトを貼り付けると: #!/bin/sh VAR=1 while ((VAR < 10)) do echo "VAR1 is now $VAR" ((VAR = VAR +2)) done echo "finish" 私はこれらの奇妙な結果を得る: #!/bin/sh #VAR=1 #while ((VAR < 10)) # do # echo "VAR1 is now $VAR" # ((VAR = VAR +2)) # done # echo "finish" # ハッシュ記号(#)とタブが表示されています。どうして?

1
bashがスペースで始まるコマンドを保存しないのはなぜですか?
次のような一連のコマンドを実行すると: $ ls $ grep abc file.txt そして、上矢印キーを使用して前のキーを取得すると、端末は最後のcmd(grepここにあります)を表示します しかし、私がこのようなことをしたら: $ ls $ grep abc file.txt whereのgrep前にはスペースがあり、上に押すとlsではなくが与えられますgrep。 どうしてこれなの?

1
すべてのgitコマンドで空白の変更を無視する
行末を変更するときにgitに警告する方法を説明するサイトや、ファイル全体を台無しにしないようにするその他のさまざまなテクニックを見つけました。それには遅すぎると仮定してください-ツリーにはすでにファイルの行末を切り替えるコミットがありますのでgit diff、古いファイルの減算と同じ内容の新しいファイルの追加が表示されます 私はdiffそれらを無視するように指示するgit設定オプションまたはコマンドラインフラグを探しています-2 つの行が空白だけで異なる場合、それらは同じふりをします。-私は、ファイルの違いに依存しています何のために仕事に、この設定オプション/フラグを必要としdiff、blame偶数merge/ rebase理想的に-私が望むgit完全に末尾の空白、特に行末を無視します。どうやってやるの?

2
変数からすべてのスペース、タブ、改行などを削除しますか?
これは私が得ているエラーであり、値が2になるはずの変数のために失敗しています(これを使用してこれを取得していますselect * from tabel)。その変数にスペースが入っています。 + 0 != 2 ./setjobs[19]: 0: not found. その変数からすべてのスペースまたは改行を削除するにはどうすればよいですか?缶tr、sedあるいは何の助け? これは私がやっていること: set_jobs_count=$(echo "set heading off; select count(*) from oppar_db where ( oppar_db_job_name, oppar_db_job_rec ) in ($var) ;" | \ sqlplus -s ${OP_ORA_USER}/${OP_ORA_PASS}@$OPERATIONAL_DB_NAME) これは提案どおりに機能します。 | sed 's/[[:space:]]//g' しかし、私はまだ次のような値を取得します: set_jobs_count= 2
25 shell  sed  tr  whitespace  newlines 


3
if条件の括弧:空白なしで構文エラーが発生するのはなぜですか?
次のスクリプトを使用して、1年の2日間の開始時にスクリプトを実行するときに2日前に移動し、また毎月1日と2日目をチェックして2日前に移動します。 if [$month="01"] && [$day="01"]; then date="$last_month/$yes_day/$last_year" fulldate="$last_month/$yes_day/$last_year" else if [$month="01"] && [$day="02"]; then date="$last_month/$yes_day/$last_year" fulldate="$last_month/$yes_day/$last_year" else if [ $day = "01" ]; then date="$last_month/$yes_day/$year" fulldate="$year$last_month$yes_day" else if [ $day = "02" ]; then date="$last_month/$yes_day/$year" fulldate="$year$last_month$yes_day" else date="$month/$yes_day/$year" fulldate="$year$month$yes_day" fi fi fi fi しかし、私の悪いは、以下のエラーメッセージを取得しています Etime_script.sh: line 19: [06=01]: command not …

2
おそらく空白を含むファイル名のリストを扱うPOSIX準拠の方法
空白を含むファイル名を操作するための配列の使用を提案するBashスクリプトガイドを見てきました。ただし、DashAsBinShは配列には移植性がないことを示唆しているため、空白を含むファイル名のリストを扱うPOSIX準拠の方法を探しています。 以下のスクリプト例を修正して、 echo foo/target/a.jar foo/target/b.jar bar/target/lol whitespace.jar ここにスクリプトがあります #!/usr/bin/env sh INPUT="foo/target/a.jar foo/target/b.jar bar/target/b.jar bar/target/lol whitespace.jar" # this would be produced by a 'ls' command # We can execute the ls within the script, if it helps dostuffwith() { echo $1; }; F_LOCATIONS=$INPUT ALL_FILES=$(for f in $F_LOCATIONS; do echo `basename $f`; …


3
末尾の空白がある場合とない場合の単語の一致にはどのような違いがありますか?
私はシェルスクリプトを学んでおり、そのためにHackerRankを使用しています。sed同じサイトに関連する質問があります:'Sed'コマンド#1: 特定の入力ファイルの各行について、単語「the」の最初の出現を「this」で変換します。検索と変換では、大文字と小文字を厳密に区別する必要があります。 まず始めに、 sed 's/the/this/' しかし、そのサンプルテストケースでは失敗しました。それから私は試した sed 's/the /this /' そしてそれは働いた。それでは、空白がどのような違いを生み出したのかという疑問が生じますか?ここに何かが足りませんか?
12 sed  whitespace 

4
bash:findのselectへのホワイトスペースセーフな手続き的使用
これらのファイル名を考えると: $ ls -1 file file name otherfile bash 埋め込まれた空白でそれ自体は完全にうまくいきます: $ for file in *; do echo "$file"; done file file name otherfile $ select file in *; do echo "$file"; done 1) file 2) file name 3) otherfile #? しかし、時々私も厳密内のすべてのファイル、またはと仕事したくない場合があります$PWDところで、find入ってくるも、ハンドル空白名目上。: $ find -type f -name file\* ./file ./file name …

2
引用符付きと引用符なしの文字列展開
for i in $(xrandr); do echo "$i" ; done for i in "$(xrandr)"; do echo "$i"; done for i in "$(xrandr)"; do echo $i; done 1が2と異なる理由を理解していますが、3が2とは異なる出力を提供するのはなぜですか?出力についても説明してください。引用符は改行でどのように機能しますか?

4
zshではなくbashでカットが失敗するのはなぜですか?
タブ区切りフィールドを含むファイルを作成します。 echo foo$'\t'bar$'\t'baz$'\n'foo$'\t'bar$'\t'baz > input 次の名前のスクリプトがあります zsh.sh #!/usr/bin/env zsh while read line; do <<<$line cut -f 2 done < "$1" 私はそれをテストします。 $ ./zsh.sh input bar bar これは正常に動作します。しかし、最初の行をbash代わりに呼び出すように変更すると、失敗します。 $ ./bash.sh input foo bar baz foo bar baz なぜこれが失敗しbashて動作するのzshですか? 追加のトラブルシューティング シバンの代わりに直接パスを使用envすると、同じ動作が生成されます。 echohere-stringを使用する代わりにでパイピングして<<<$lineも、同じ動作が生成されます。すなわちecho $line | cut -f 2。 使用するawk代わりに、cut 作品の両方のシェルのため。すなわち<<<$line awk '{print $2}'。

3
TABで区切られた文字列をbashで印刷する方法は?
タブで区切られた2つの文字列を印刷しようとしています。私が試してみました: echo -e 'foo\tbar' printf '%s\t%s\n' foo bar それらの両方が印刷します: foo bar 2つの間の空白は実際には5つのスペースです(パテでマウスを使用して出力を選択する場合)。 コマンドを入力するときにCTRL + Vを使用してTabキーを押しても同じ結果が得られました。 タブをタブとして強制的に印刷する正しい方法は何ですか?出力を選択して、タブを使用して別の場所にコピーできますか? そして2番目の質問:bashがタブをスペースに展開するのはなぜですか? 更新:どうやら、これはパテの問題です:https : //superuser.com/questions/656838/how-to-make-putty-display-tabs-within-a-file-instead-of-changing-them-to -スペース

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.