私は、ユーザーがLinuxシステムのホスト名を設定できるようにする既存のスクリプトに機能を追加しています。次のように私は強制てるのルールは以下のとおりです。Bash文字列を英数字で、アンダースコアなしにするにはどうすればよいですか?
- が
- 開始または
- は英数字のみと、ハイフンを含めることができ、ハイフンで終わってはいけません 長く、2〜63文字でなければなりません。他のすべての文字は許されません(\ W正規表現を使用できないことを意味するアンダースコアを含む)
私はリストの最初の2つを解決しましたが、 bash文字列に文字、数字、ハイフンのみが含まれているかどうかを確認します。私は正規表現でこれを行うことができると思うが、私はどのようにして(Webを検索してマニュアルページを読むのに過去の時間を費やしていたのか)調べるのに困っている。
私はsed、grep、またはその他の標準ツールを使用できますが、PerlやPythonは使用できません。
でそれを行うことができますか?私はマニュアルページのスイッチを探していますが、成功しません。一致する文字列を出力していて何も出力されません。 –
@Montecristo: 'grep -E'または' egrep' – Welbog
私はこれを試しました:echo 1asdas * _- | grep -E '^ [[:alnum:]] [ - :alnum:]] {0:alnum:]] $'、出力なし(一重引用符も含まない)、lol質問:P –