bashでは、変数を5digitに合わせる方法(数値)を入力しますか? -- linux フィールド と bash フィールド と shell フィールド 関連 問題

In Bash, how to typeset a variable (numeric) to 5digit?












3
vote

問題

日本語

Bashで変数を変換するので、数字が小さい場合は常にリードゼロで埋めます。 例えば。
変数 'a'を5桁として複製し、値78を与える場合、出力は00078

にする必要があります。

すでに利用可能な様々な回答があります。これは、
を使用するのと同じようにそれをする方法を示しています。 <コード> printf -v a "%05d" 78;
など、このようにしても出力を一度だけ変更してください。

<コード> printf -v a "%05d" 78 echo $a a=32 echo $a;

出力:
00078
32ここでは

をパディングしません

kshでは、このようなタイプセットと呼ばれ、このように使用されているオプションがあります。
<コード> typeset -Z5 gen=78; echo $gen; gen=32; echo $gen;

出力:
00072
00032

しかしbash -zの場合、オプションはタイプセットには使用できません。 「宣言」を使用すると主張されたフォーラムの1つの答えは、bashで "Typeset"を使用していますが、kshの-zオプションである。

質問
これに実行可能な解決策は、変数のAtttributeを1回設定します。それとも私の出力を毎回(printfを使うように)weekに辞巻する必要があります。

英語

how shall I typeset a variable in bash, so it always pads with leadding zeros, if number is smaller. For Eg.
If I typeset a variable 'a' as 5 digit and give value 78, output should be 00078

There are various answeres already available, which tell how to do it, like using
printf -v a "%05d" 78;
etc, but please note if we do this way we change the output just once.
Eg.
printf -v a "%05d" 78 echo $a a=32 echo $a;

Output:
00078
32 No padding here

in ksh, there is option called typeset and used like this
typeset -Z5 gen=78; echo $gen; gen=32; echo $gen;

Output:
00072
00032

However for bash -Z, option is not available for typeset. One answer, on a forum, claimed to use "declare" instead "typeset" in bash, however -Z option of ksh, typeset is not available even in declare.
Question
Is there any feasible solution to this, like I set the atttribute of variable once. Or do I need to tweek my output everytime (like using printf).

</div
        
 
 

回答リスト

1
 
vote

あなたは

をするかもしれません <事前> <コード> a=78 astr=$(printf "%05d" a) echo $astr
 

You might do

a=78 astr=$(printf "%05d" a) echo $astr 
</div
 
 
   
   

関連する質問

1  Korn TypsSetオプション-t(タグ)は何ですか?  ( What is the korn typset option t tag used for ) 
私はKornについて読んでいて、href="http://www.docs.hp.com/ja.en/b2355-90046/htmber3s06.html?btnprev=%AB%A0PREV" REL="NOFOLLOW NOREFERRER"> Type...

21  IISでのLinuxシェル  ( Linux shell equivalent on iis ) 
.NET IISプラットフォームへの移行を考慮したランプ開発者として、私の懸念の1つはシェルの欠如による生産性の喪失です...他の誰かがこの経験を持っていましたか? LinuxシェルがWindowsに相当する可能性がありますか? ...

0  OSベースの「機能」を無効にするのは悪い練習ですか?  ( Is it bad practice to disable os based features ) 
私の頭を囲むことができないことは、ここでの永続的な質問、そしてWeb上の他の場所で、OSベースの「機能」を無効にします。人々は永遠にデフォルトのOSショートカットを無効にする方法(コピーペースト、Windowsキーなど)、またはプログラムで機能を無効にする方法...

19  コマンドがシェルモードでエディタを開きようとすると、Emacsバッファを開く  ( Open an emacs buffer when a command tries to open an editor in shell mode ) 
Emacsのシェルモードを使用するのが好きですが、それはいくつかの欠陥を持っています。その1つは、シェルコマンドがエディタを呼び出しようとするときに新しいバッファを開くのに十分なほど賢くないということです。たとえば、環境変数<コード> VISUAL vi...

271  Bashで変数が空のかどうかを見つける方法?  ( How to find whether or not a variable is empty in bash ) 
Bashで変数が空のかどうかを確認できますか? ...

22  シェルスクリプティング入力リダイレクト奇妙  ( Shell scripting input redirection oddities ) 
誰かがこの行動を説明することができますか? 実行: <事前> <コード> #!/bin/sh echo "hello world" | read var1 var2 echo $var1 echo $var2 は、OUPUTでは何もしないが: <事前> <...

41  コマンドラインアプリケーションの構築を容易にする良いJavaライブラリはありますか? [閉まっている]  ( Are there good java libraries that facilitate building command line applications ) 
この質問はスタックオーバーフローガイドラインを満たしていません。現在答えを受け付けていません。 この質問を改善したいですか? ...

55  シェル内のファイルのサイズを計算します  ( Calculate size of files in shell ) 
シェルを使用してファイル名パターンと一致するすべてのファイルのバイト単位で(ディレクトリツリー内)のバイト単位で計算しようとしています。これは私がこれまでのものです: find -name * undo -exec stat -c%s {} ; | .. ...

5  ShellScriptでUNIXのユーザー名とパスワードを確認してください  ( Check unix username and password in a shellscript ) 
ローカルのUnixユーザーの渡されたユーザー名とパスワードが正しい場合は、シェルスクリプトをチェックインします。これを行う最も簡単な方法は何ですか? グーグルが見つかったときに見つけたことだけが「期待」と「su」を使ってから、「su」が成功した場合はどういうわ...

1133  Rubyからシェルコマンドを呼び出す方法  ( How to call shell commands from ruby ) 
Rubyプログラムの内側からシェルコマンドを呼び出す方法その後、これらのコマンドからRubyへの出力を取得するにはどうすればよいですか? ...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有