
お世話になります。
シェルで変数(例えば: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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのようなもの
-
シェルの中からシェルを呼び出...
-
違いについて
-
右クリックでファイル名をコピ...
-
コマンドフック
-
Linuxシェルによる同一文字列の...
-
UNIX初心者です。
-
シェル 会話形式でエンターキ...
-
ログイン画面がループして起動...
-
Thunderbirdで既読にしても、シ...
-
JAVA_HOMEを設定したい
-
lsコマンド部分一致方法
-
Unixとlinuxのシェルスクリプト...
-
pc98のコマンドプロンプトからD...
-
コンソールでの上下左右矢印ボ...
-
msys(cygwin)で、シェルスクリ...
-
標準出力について
-
logoutしたとき消えるプロセス...
-
シェル??? スクリプト???
-
Dirコマンドでフォルダ内ファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cシェル内でBシェルの様な関数...
-
export と set は違うの?
-
ubuntuの端末の左にカレントデ...
-
『存在するかどうか分からない...
-
シェル 会話形式でエンターキ...
-
.cshrc ファイルについて
-
シェル(ksh)で変数にある文字列...
-
posixでshellを起動したとき`da...
-
ターミナルが全く入力できない
-
シェルスクリプトのbashとperl...
-
lsコマンド部分一致方法
-
コンソールでの上下左右矢印ボ...
-
msys(cygwin)で、シェルスクリ...
-
Tabキー補完や↑キーのヒストリ...
-
シェルスクリプトに関する問題...
-
apache停止してたら再起動させ...
-
Thunderbirdで既読にしても、シ...
-
Cシェルでのファイルからの入...
-
シェルとシェルの間で環境変数...
-
コマンドプロンプトとかで、net...
おすすめ情報