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

他のBourne / POSIXシェルとは対照的に、GNUのBourne Again SHellに固有の質問。Unixシェル全般に関する質問については、代わりに/ shellタグを使用してください。

3
コマンドラインプロンプトの間に空行を挿入する
コマンドラインを使用すると、多くの場合、煩雑になります。たとえば、過去のコマンドとその出力を調べるのは不便です。 コマンドプロンプトが表示される前に毎回改行を追加したいと思います。そのようです: <clutter> <blank line> name@machine:~$ 私はbashシェルを使用しています。どうすればこれを達成できますか?

1
ワイルドカードで割り当てられた変数のパラメーター展開
現在のフォルダー(MA502)に2つのファイルがあり、その名前は- MA502_TAAGGCGA-TCGCAGG_L001_R1_001.at.fastq MA502_TAAGGCGA-TCGCAGG_L001_R2_001.at.fastq MA503、MA504などのフォルダがたくさんあるので、それらを繰り返し処理します。 ワイルドカードを使用して変数名を割り当てます- Forward=*R1*.at.fastq Reverse=*R2*.at.fastq これらのファイルをスクリプトで処理し、出力をに置き換え.atて.atqt、最終的な名前が次のようになるようにします- MA502_TAAGGCGA-TCGCAGG_L001_R1_001.atqt.fastq MA502_TAAGGCGA-TCGCAGG_L001_R2_001.atqt.fastq 私は試した awk 'script' $Forward > ${Forward/.at/.atqt} 私の最終的なファイル名は次のようになります- *R1*.atqt.fastq だった私の期待の代わりに MA502_TAAGGCGA-TCGCAGG_L001_R1_001.atqt.fastq UNIXでは必要に応じてすべてを学んだので、変数名がどのように処理されるのかわかりません。どんな助けでもありがたいです!

3
ファイル内の2つのマーカー間のテキストを別のファイルのテキストのセクションに置き換える方法は?
にテキストのブロックがあったとしましょう~/.bashrc: #~/.bashrc # ...some commands... # aliases alias suicide='sudo rm -rf /' # end aliases # other commands そのテキストブロックを別のファイルの2つのマーカーの間に含まれる他のテキストで置き換えたいと思います。 stuff-to-place-in-bashrc.txt # stuff-to-place-in-bashrc.txt # ...stuff... # aliases alias ldir='ls * -d' alias ithinklifeisworthliving='echo all good' # end aliases # ...more stuff... 私はもう試した sed -ne 's/# aliases\s+\(.*\)\s+# end aliases/\1/' stuff-to-place-in-bashrc.txt しかし、私はここで暗闇の中で本当に揺れています。誰かが私を助けてくれませんか? からテキストを抽出するにはどうすればよいstuff-to-place-in-bashrc.txtですか? …

2
1つのbashファイルに複数のシバン
私は他の人から見たスクリプトがあります(注:これは単一のファイルです)。 #!/bin/bash some commands some commands #!/bin/bash some commands some commands #!/bin/bash some commands some commands 2番目と3番目のシバンの目的は何ですか?それは間違っているのか、それとも故意ですか?

1
選択オプションの表示方法を変更できますか?
私はbashでselectとcaseを使用しています。私には現在9つのオプションがあり、オプションの3x3グリッドをきれいに整頓していますが、次のように表示されます。 1) show all elements 4) write to file 7) clear elements 2) add elements 5) generate lines 8) choose file 3) load file 6) clear file 9) exit 列の前の行に表示したいのですが。 1) show all elements 2) add elements 3) load file 4) write to file 5) generate lines 6) clear file …


4
文字列の一部を変数に抽出するにはどうすればよいですか?
次のようなファイルの行があります。 attempting to create a 512^3 level (with Dirichlet BC) using a 16^3 grid of 32^3 boxes and 800 tasks... 私は、抽出したい512^3、16^3、32^3および800それからの4つの数字と4つの変数にそれぞれ割り当てるlevel、grid、boxesおよびtasksその他の使用のために。 これどうやってするの?

3
postfixが実行されているかどうかをテストする
postfixがbashスクリプト内から実行されているかどうかをテストするための信頼できる方法を探しています。 私の最初の試みは単にを試みただけでpidof postfix、うまくいきませんでした。 それから私は入手しようとしましたpostfix status: POSTFIX_LOCATION=/var/packages/MailServer/target/sbin/postfix # location of postfix result=`$POSTFIX_LOCATION status` if [ -z $result ]; then echo "Error: No status output from postfix" elif [[ "$result" == *"is running"* ]]; then echo "postfix is running!" else echo "postfix is not running!" fi ただし、ステータスはコンソールに報告されresultますが、変数は空のままです。これはコンソール出力です: postfix/postfix-script: the Postfix mail system …
8 linux  bash  postfix 

4
異なるコマンドの入力を分割して結果を組み合わせる
異なるコマンドの結果を組み合わせる方法を知っています paste -t',' <(commanda) <(commandb) 同じ入力を別のコマンドにパイプすることがわかっている cat myfile | tee >(commanda) >(commandb) これらのコマンドを組み合わせる方法は?できるように cat myfile | tee >(commanda) >(commandb) | paste -t',' resulta resultb ファイルがあるとしましょう myfile: 1 2 3 4 新しいファイルを作りたい 1 4 2 2 3 4 3 2 6 4 1 8 使った cat myfile | tee >(tac) >(awk …

4
フォルダ構造の平坦化
私はこのフォルダー構造を持っています: ├── foo1 │ ├── bar1.txt │ └── bar2.txt ├── foo2 │ ├── bar3.txt │ └── bar4 with a space.txt └── foo3 └── qux1 ├── bar5.txt └── bar6.txt 各フォルダーレベルの間にアンダースコアを付けて、これにフラット化したいと思います。 ├── foo1_bar1.txt ├── foo1_bar2.txt ├── foo2_bar3.txt ├── foo2_bar4 with a space.txt ├── foo3_qux1.bar6.txt └── foo3_qux1_bar5.txt 調べてみましたが、うまくいく解決策が見つかりませんでした。ほとんどの場合、私の問題には2つの特殊性があるためだと思います。ルートレベル内に複数のフォルダーレベルがある場合と、一部のファイルにスペースがある場合があります。 これをbashで達成する方法はありますか?ありがとう! 編集:グリーンジャックマンの提案された回答の実行私はこれを取得します。 第1レベルのフォルダーには2つの下線があります。これを回避する方法、または名前を1つだけアンダースコアに変更する方法はありますか?ありがとう。

3
|の使用 $ variableからのパイプ文字は、それをbashの別の引数として扱います。それを脱出する方法?
私はこのようなbashスクリプトを持っています export pipedargument="| sort -n" ls $pipedargument しかし、それはエラーを与えます ls: |: No such file or directory ls: sort: No such file or directory に"| sort -n"渡された引数としての内容を扱っているようlsです。 通常のパイプコマンドとして扱われるように、どうすればエスケープできますか? 条件付きでを設定しようとしています$pipedargument。私はコマンドの異なるバージョンを条件付きで実行することができると思いますが、これを上記のように機能させる方法があるかどうか疑問に思いますか?

3
awk +最初の行から一致する単語までの行を出力する
マッチワードまでのすべての行をファイルから出力したい 例えば PPPという単語まですべての行を印刷したい 最初の行はAAA(任意の単語)とは異なるはずであることに注意してください cat file.txt AAA ( the first line/word chuld be any word !!!!! ) BBB JJJ OOO 345 211 BBB OOO OOO PPP MMM ((( &&& これを入手する必要があります AAA BBB JJJ OOO 345 211 BBB OOO OOO PPP 他の例(KJGFGHJまで印刷したい) cat file.txt1 HG KJGFGHJ KKKK だから私は取得する必要があります HG KJGFGHJ
8 linux  bash  awk  ksh 

6
Linux seqコマンドでIPアドレスの範囲を印刷する方法
「seq」コマンドを使用してLinuxコマンドラインでIPアドレスの範囲を印刷するにはどうすればよいですか?たとえば:10.0.0.1から10.0.0.23の範囲のIPを出力するためにseqが必要です。オクテット間のピリオドのように見えて、数値は浮動小数点のように動作します。「無効な浮動小数点引数エラー」が発生します。-fオプションを使ってみました。正しく使用していない可能性があります。しかし、それでもエラーが発生しました。私はに似たものにしようとしています seq 10.0.0.2 10.0.0.23 LinuxでExcelに切り替える以外にIPアドレスを印刷する別の方法はありますか?


3
文字列のn番目の文字の大文字と小文字を変更する
私は、文字列中のn番目の文字の大文字と小文字を変更するBASH(例えば、または任意の他の* nixのツールsed、awk、tr、など)。 文字列全体の大文字と小文字を次のように変更できることを知っています。 ${str,,} # to lowercase ${str^^} # to uppercase 「テスト」の3文字目の大文字を大文字に変更できますか? $ export str="Test" $ echo ${str^^:3} TeSt

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