お世話になります。
シェルで変数(例えば:OUT)に入っている文字列ついて2つ質問させてください。
1:変数に入っている文字列を後ろから何文字(固定長)取り出したい場合にどのようすればよいか教えてください。
試してみたのは以下です。
OUT1=abcde #変数OUT1に文字列abcdeを代入
OUT=${OUT1:3:(-1)}
(固定長3バイト後ろから取り出したい(cde))
をファイルに書きこんで起動すると、上記の処理にいったところで、"置換が正しくありません"とでてしまいます。
2:変数に入っている文字列の文字数を取り出したい。
試してみたのは以下です。
OUT1=abcdec #変数OUT1に文字列abcdeを代入
OUT=${#OUT}
これは、コマンドラインでecho ${#OUT}とすると6と文字数を表示してくれますが、ファイルに書きこんで起動すると上記同様"置換が正しくありません"と表示されてしまいます。
OSは、SUN OS 5.8です。
わかるかたがいらっしゃたら教えてください。
宜しくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちわ。
これはコマンドの引数で解決すると思います。tail -c コマンドを使うと文字列の後ろからバイト単位で文字列を
引っ張ってくることができます。
ksh はやったことないので分かりませんが sh とあまり変わらないとおもうので
OUT1 にほしい文字列が入っていたとしたら多分下記でしょうか。
OUT=`echo $OUT1 | tail -c3`
$OUT1 の中身を echo で表示させ、その文字後ろから3バイトを引っ張るという意味になります。
興味があれば man tail でも見てみてください。
No.1
- 回答日時:
「コマンドラインから入力すると期待通りに動くけどスクリプトにするとうまくいかない」ということだと, 「スクリプトにしたときに, そのスクリプトを動かしているシェルは何か」ということを確認した方がよいと思います.
実はスクリプトは ksh じゃなくって sh が動かしてたりして.
ありがとうございます。
確かに動かしているシェルがなにか確認はしていません。
初心者の質問ですが、shとはbshということですか?
bshだとしたら、変数の文字列を後ろから取得する方法及び
変数にはいっている文字数をスクリプトで取得する方法を
教えていただけないでしょうか?
超初心者の質問で申し訳ありません。
宜しくお願いいたします。
ご回答ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Perl perlについての質問 2 2022/10/17 15:25
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Excel(エクセル) エクセルにおいてセル内の文字を出来るだけ大きく表示する方法を教えてください。 4 2022/07/30 08:08
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.cshrc ファイルについて
-
Cシェル内でBシェルの様な関数...
-
シェルにて日付計算して値を取...
-
Cシェルでのファイルからの入...
-
export と set は違うの?
-
シェル(ksh)で変数にある文字列...
-
シェルとシェルの間で環境変数...
-
mac os x10.6.4のターミナルでp...
-
(PC初心者)シェルスクリプト...
-
バックスラッシュの意味がわか...
-
Linuxのファイル禁止文字
-
シェル内で自動ユーザ変更
-
makefile内の$$$$の意味
-
↑で前のコマンドを出したい
-
ターミナルが全く入力できない
-
ログインシェルの役割
-
Dirコマンドでフォルダ内ファイ...
-
TOPコマンドで表示するCPU使用...
-
エクセルの表にヘンな枠が・・・
-
batである文字列内に特定の文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cシェル内でBシェルの様な関数...
-
export と set は違うの?
-
ターミナルが全く入力できない
-
ubuntuの端末の左にカレントデ...
-
シェルスクリプトで #!/bin/sh ...
-
.cshrc ファイルについて
-
バックスラッシュの意味がわか...
-
シェル 会話形式でエンターキ...
-
『存在するかどうか分からない...
-
シェルスクリプトに関する問題...
-
lsコマンド部分一致方法
-
シェルスクリプトのbashとperl...
-
シェル(ksh)で変数にある文字列...
-
mac os x10.6.4のターミナルでp...
-
Linuxのファイル禁止文字
-
Solarisでデフォルト環境変数の...
-
ps -aのセッションリーダとは
-
csh (tcsh)での環境変数の長さ...
-
Cシェルでのファイルからの入...
-
tcshなのにスクリプト構文中のs...
おすすめ情報