2016-10-27 8 views
0

これは簡単な質問ですが、回避するにはあまりにも多くの問題を抱えています。 上記のすべてのソリューションはksh99で動作します。しかし、残念ながら私はksh88を使用して、文字列から部分文字列を取得できません。UNIXのサブストリングksh88

私は文字列の年の一部を取得しようとしています。しかし、私はエラーが発生しています。カット構文はうまくいくようです。変数への代入。

cut: The list arguments following the c option are not correct. 

ここでは、使用されるステートメントを示します。

typeset -i dt_year=`echo 201610118 | cut -c1-4` 
+0

投稿されたコードが失敗することは想像もつきません。 'cut'コマンドはスタンドアローンで動作しますか?あなたが[MCVE(最小、完全、そして実証可能な例)](http://stackoverflow.com/help/mcve)を作ることができるかどうかを見てください。 – mklement0

+0

ksh88に慣れてきたので、私は変わった実装で知られている旧式のUnix変種、HP、またはAIXを使用していると推測しています。 'man cut'をチェックして' c'が実際に文字を意味するのを見ましたか?-)?おそらくあなたのOS用のタグを追加してください。 (そして、私はあなたがksh95を意味すると確信しています。新しいkshが2年前に出てくる間、彼らはまだksh95として分類されます。最後に、 '/ usr/xpg4/bin/ksh'か他のディレクトリを探しましたか? ) がんばろう。 – shellter

+0

試してみる 'echo 201610118 |カット-C1-4 '。それがうまくいくと、 'typeset -i'なしであなたのコマンドを試してみてください。 'typeset -i dt_year =" 2016 "'を試してみてください。これらのテストを組み合わせて問題を特定します。 –

答えて

0

私はksh88では中であなたのラインを分離します:あなたはまた、cut -c-4

を残し、cutがエイリアスされている場合、エイリアスに確認しようとすることができます

typeset -i dt_year=0 

dt_year=`echo "201610118" | cut -c1-4`