[解決済み】シェルスクリプトでファイル名の拡張子を削除するには?
2022-04-09 12:37:34
質問
次のコードのどこが問題なのでしょうか?
name='$filename | cut -f1 -d'.''
そのままでは、リテラル文字列
$filename | cut -f1 -d'.'
しかし、引用符を削除すると、何も表示されません。一方、次のように入力すると
"test.exe" | cut -f1 -d'.'
をシェルで実行すると、私が望む出力が得られます。
test
. 私はすでに
$filename
は正しい値が割り当てられています。私がしたいのは、拡張子を除いたファイル名を変数に代入することです。
解決方法は?
を使用する必要があります。
コマンド置換
構文
$(command)
script/commandでコマンドを実行したい場合。
ですから、あなたの行は次のようになります。
name=$(echo "$filename" | cut -f 1 -d '.')
コードの説明です。
-
echo
変数の値を取得する$filename
を作成し、標準出力に送ります。 -
次に、出力を取得し、それをパイプで
cut
コマンド -
は
cut
は文字列をセグメントに分割するためのデリミタ(セパレータともいう)として .を使用し-f
どのセグメントを出力するかを選択します。 -
次に
$()
コマンド置換は出力を取得し、その値を返します。 -
という変数に代入されます。
name
これは、変数の最初のピリオドまでの部分を与えることに注意してください。
.
:
$ filename=hello.world
$ echo "$filename" | cut -f 1 -d '.'
hello
$ filename=hello.hello.hello
$ echo "$filename" | cut -f 1 -d '.'
hello
$ filename=hello
$ echo "$filename" | cut -f 1 -d '.'
hello
関連
-
[解決済み] condaのアップデート後、ターミナルのプロンプトから(base)を削除する方法
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] あるディレクトリにあるすべてのコード行を再帰的にカウントするにはどうすればよいですか?
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] 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でjsonファイルを解析するために、jqの出力にあるダブルクオートを削除する方法は?
-
[解決済み】 -bash: 予期しないトークン「改行」付近での構文エラー
-
[解決済み】shでJenkinsのステージから他のステージに変数を渡す
-
[解決済み] '\r': command not found - .bashrc / .bash_profile [duplicate].
-
[解決済み] Bashを使ってプログレスインジケータを表示する [重複]。
-
[解決済み] シンプルなAsciiテーブルをCSVに変換する【終了】。
-
[解決済み] シェルスクリプトでこのエラーを解決するにはどうしたらよいでしょうか。"読み取り。Illegal option -t "というエラーはどうすれば解決できますか?
-
[解決済み] bash スクリプトを実行している docker エントリポイントに "permission denied" が表示される。
-
[解決済み] bashの"-ne "はどういう意味ですか?