[解決済み] Bashで文字列から改行を削除する方法
2022-02-03 17:45:03
質問
次のような変数があります。
echo "|$COMMAND|"
を返します。
|
REBOOT|
最初の改行を削除するには?
どのように解決するのですか?
下 バッシュ は、いくつかのバシズムがあります。
は
tr
コマンドは次のように置き換えることができます。
//
バシズム
:
COMMAND=$'\nREBOOT\r \n'
echo "|${COMMAND}|"
|
OOT
|
echo "|${COMMAND//[$'\t\r\n']}|"
|REBOOT |
echo "|${COMMAND//[$'\t\r\n ']}|"
|REBOOT|
参照 パラメータ展開 と クオーツ をbashのmanページに追加しました。
man -Pless\ +/\/pattern bash
man -Pless\ +/\\\'string\\\' bash
man -Pless\ +/^\\\ *Parameter\\\ Exp bash
man -Pless\ +/^\\\ *QUOTING bash
さらに...
AlexJordan の質問にあるように、これは
すべて
を指定した文字です。では
$COMMAND
がスペースを含んでいる場合...
COMMAND=$' \n RE BOOT \r \n'
echo "|$COMMAND|"
|
BOOT
|
CLEANED=${COMMAND//[$'\t\r\n']}
echo "|$CLEANED|"
| RE BOOT |
shopt -q extglob || { echo "Set shell option 'extglob' on.";shopt -s extglob;}
CLEANED=${CLEANED%%*( )}
echo "|$CLEANED|"
| RE BOOT|
CLEANED=${CLEANED##*( )}
echo "|$CLEANED|"
|RE BOOT|
短く
COMMAND=$' \n RE BOOT \r \n'
CLEANED=${COMMAND//[$'\t\r\n']} && CLEANED=${CLEANED%%*( )}
echo "|${CLEANED##*( )}|"
|RE BOOT|
注
バッシュ
持つ
extglob
オプションを有効にすること (
shopt -s extglob
を使用するために
*(...)
の構文があります。
関連
-
[解決済み] bashスクリプトでタブ文字をエコーする
-
[解決済み] ターミナルでbashスクリプトを実行するにはどうすればよいですか?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bash prints リテラルの改行をエコーする \n
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Bashで変数が設定されているかどうかを確認する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Bashのシンタックスエラー:予期しないファイルの終わり
-
[解決済み】if [](角括弧)の「[: 引数が多すぎる」エラーの意味)
-
[解決済み] Bashで$()と`の違いはあるのでしょうか?重複] [重複
-
[解決済み] (standard_in) 1: bash スクリプトのシンタックスエラー
-
[解決済み] sed で二重引用符と単一引用符をエスケープするにはどうしたらいいですか?
-
[解決済み] Bashを使ってプログレスインジケータを表示する [重複]。
-
[解決済み] bashで::演算子は何をするのですか?
-
[解決済み] シンプルなAsciiテーブルをCSVに変換する【終了】。
-
[解決済み] condaのアップデート後、ターミナルのプロンプトから(base)を削除する方法
-
[解決済み] シンタックスエラー」が発生しました。"(" unexpected' (expecting "done") [duplicate]".