タグ付けされた質問 「string」

文字列操作:文字列の一部の抽出、テキストの置換、特定の幅へのフォーマットなど

3
シェルスクリプトでの大文字と小文字を区別しない部分文字列検索[終了]
閉じた。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 5年前に閉鎖されました。 コマンド出力の大文字と小文字を区別しない部分文字列一致を行うシェルスクリプトを作成するにはどうすればよいですか?

8
grepとcut inスクリプトを使用してHTMLファイルからWebサイトのURLを取得する方法
grepとcutを使用して、HTMLファイルからURLを抽出しようとしています。リンクは次のようになります。 <a href="http://examplewebsite.com/"> 他のウェブサイトには.netありますが、.gov直前にカットオフポイントを作ることができると思い>ます。だから私は、grepを使用して、httpの前と.comの後にすべてをカットすることができることを知っていますが、私はしばらくの間それで立ち往生しています。

6
実行されたコマンドからエラーメッセージをキャプチャする方法
自動サーバー強化スクリプトを作成することを任されました。必要なことの1つは、実行された各コマンドのすべての出力のレポートです。エラーメッセージを文字列内に保存し、テキストファイルに追加したいです。 このコマンドを実行したとしましょう: /sbin/modprobe -n -v hfsplus 私のマシンでこれを実行すると、出力は次のようになります。 FATAL: Module hfsplus not found そのエラーメッセージを文字列内に保存するにはどうすればよいですか?どんな助けも大歓迎です。ありがとう!
20 bash  scripting  string 

2
このスクリプトが端末では機能するのにファイルでは機能しないのはなぜですか?
このシェルスクリプトをファイルに保存しました。基本的な文字列の置換を行います。 #!/bin/sh html_file=$1 echo "html_file = $html_file" substr=.pdf pdf_file="${html_file/.html/.pdf}" echo "pdf_file = $pdf_file" コマンドラインに貼り付けると、正常に機能します。 $ html_file="/home/max/for_pauld/test_no_base64.html" echo "html_file = $html_file" substr=.pdf pdf_file="${html_file/.html/.pdf}" echo "pdf_file = $pdf_file" 与える html_file = /home/max/for_pauld/test_no_base64.html pdf_file = /home/max/for_pauld/test_no_base64.pdf これが上記のechoの出力です-意図したとおりに機能しています。 しかし、スクリプトを呼び出すと、 $ saucer "/home/max/for_pauld/test_no_base64.html" 私はこの出力を取得します: html_file = /home/max/for_pauld/test_no_base64.html /home/max/bin/saucer: 5: /home/max/bin/saucer: Bad substitution 私のスクリプトは別のバージョンのbashなどを使用していますか?シバンのラインを変更する必要がありますか?
18 bash  string 

2
JavaScriptの「split()」のようなものがシェルにありますか?
split()JavaScriptで文字列を配列に分割するのは非常に簡単です。 シェルスクリプトはどうですか? 私はこれをやりたいと言います: $ script.sh var1_var2_var3 ユーザーがそのような文字列var1_var2_var3をscript.shに渡すと、スクリプト内で文字列を次のような配列に変換します array=( var1 var2 var3 ) for name in ${array[@]}; do # some code done

4
変数内の文字を置き換える最短の方法
変数内の文字を置き換えるには多くの方法があります。 私が見つけた最短の方法はtrこれまでのところです: OUTPUT=a\'b\"c\`d_123and_a_lot_more OUTPUT=$(echo "$OUTPUT"|tr -d "'\`\"") echo $OUTPUT もっと速い方法はありますか?そして、これは'、"および `のような引用に対して安全です?
18 bash  string  variable 

3
変数展開を延期する方法
スクリプトの先頭にあるいくつかの文字列を、まだ設定されていない変数で初期化したいと思っていました。 str1='I went to ${PLACE} and saw ${EVENT}' str2='If you do ${ACTION} you will ${RESULT}' そしてその後にPLACE、EVENT、ACTION、およびRESULT設定されます。次に、変数を展開して文字列を出力できるようにします。私の唯一のオプションevalですか?これはうまくいくようです: eval "echo ${str1}" これは標準ですか?これを行うためのより良い方法はありますか?eval変数が何であってもよいと考えて実行しないのはいいことです。
18 bash  shell  string 

4
ソースコード内のread -pのプロンプトで長い文字列を複数の行に分割する方法は?
として実行されるインストールスクリプトを作成しています/bin/sh。 ファイルの入力を求める行があります: read -p "goat can try change directory if cd fails to do so. Would you like to add this feature? [Y|n] " REPLY この長い行を多くの行に分割して、80文字を超えないようにします。スクリプトのソースコード内の行について話しています。スクリプトの実行時に画面に実際に印刷される行についてではありません! 私が試したもの: フリストアプローチ: read -p "goat can try change directory if cd fails to do so. " \ "Would you like to add this feature? …

2
パターンに従って、bashスクリプトで文字列を抽出する
bashで、文字列があると仮定しますstrname: strname="ph7go04325r" 私は間の文字を抽出したい最初 "3"の文字と最後 "r"の文字strname列に結果を保存し、strresult。上記の例では、結果strresultは次のようになります。 strresult="25" 最初の"3"文字は、必ずしも8の文字列位置にあるとは限りませんstrname。同様に、最後の文字列は必ずしも文字列位置11にあると"r"は限りません。したがって、次の文字列strnameは両方とも次のようになりますstrresult="25"。 strname="ph11go04325raa" strname="325r" strname="rgo04325raa" また、strname=ph12go04330raa"を生成する必要がありstrresult="30"ます。 私はbashスクリプトの初心者であり、このような文字列パターンマッチングをどこから始めればよいのかわかりません。何か提案はありますか?


3
ディレクトリパスの最後のスラッシュを取り除く方法は?
1つの引数としてディレクトリを必要とするスクリプトがあります。2つの形式をサポートしたい:1つは a/b/c (最後にスラッシュはありません)そして別のものは a/b/c/ (最後にスラッシュがあります)。 私の質問:2つの形式のいずれかが与えられた場合、最初の形式を変更せずに保持し、2番目の形式の最後のスラッシュを削除して最初の形式に変換する方法を教えてください。

3
bashはパラメーター展開で後方参照をサポートしますか?
私が持っているという名前の変数descrの文字列を含むことができBlah: -> r1-ae0-2 / [123]、-> s7-Gi0-0-1:1-US / Fooなど私が取得したい-> r1-ae0-2、-> s7-Gi0-0-1:1-US文字列から一部を。現時点ではdescr=$(grep -oP '\->\s*\S+' <<< "$descr"これに使用しています。これを行うためのより良い方法はありますか?パラメータ拡張でこれを行うことも可能ですか?

4
小文字/大文字の単語のすべての可能な組み合わせを取得します
特定の単語、たとえばharleyのすべての可能な小文字および大文字の順列を出力するbashスクリプトを作成したい: harley harleY harlEy harLey ... HARLey HARLEy HARLEY 私の素朴な解決策は、この特定の単語のネストされたforループをn番目(nはlen(word))に書くことです: #!/bin/bash for a in {h,H}; do for b in {a,A}; do ... done done ただし、別の単語のスクリプトを再度コーディングする必要があります。 これを達成するためのより良い方法はありますか?
14 bash  string 

5
bashで文字列にインデックスを付ける
sh / bashのインデックスで文字列を参照するにはどうすればよいですか?つまり、基本的にそれを分割します。 ファイル名の5文字を​​削除しようとしています。すべての名前の構造は、name_nr_codeです。5つの英数字コードビットを削除しようとしています。name_nr_常に10文字です。 ようなものがあります; for i in * ; do mv "$i" "$i"[:10] ; done
14 bash  shell  string 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.