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

Kornシェル(ksh)は、高度なスクリプト機能を備えたシェルであり、商業用のuniceおよび一部のBSDシステムで一般的に使用されていますが、Linuxではほとんど使用されていません。

4
grepコマンドで文字列検索をifステートメントに入れる方法は?
2つのファイルで複数の文字列を検索したい。両方のファイルで1つの文字列が見つかった場合は、何かを作成します。1つの文字列が1つのファイルだけで見つかった場合は、別の文字列を作成します。 私のコマンドは次のとおりです: ####This is for the affirmative sentence in both files if grep -qw "$users" "$file1" && grep -qw "$users" "$file2"; then ####This is for the affirmative sentence in only one file, and negative for the other one if grep -qw "$users" "$file1" ! grep -qw "$users" "$file2"; then それは声明を否定し、肯定する正しい方法ですか?pd …

5
KornShellの色付きプロンプト
このStackOverflowの投稿によると、KornShellで色付きのプロンプトが表示される可能性があります。これを行う方法を理解することができませんでした。私は色を使うことができます: echo -e "\033[34mLinux\033[00m" 青色の「Linux」出力が表示されます。 printf "\033[34mLinux\033[00m" ただし、エスケープコードをPS1プロンプト変数に組み込むと、エスケープされません。色付きのプロンプトを取得するにはどうすればよいですか?見栄えをよくするだけでなく、出力を視覚的に解析するときに色付きのプロンプトが役立つことがわかりました。
11 colors  prompt  ksh 


3
ファイル名を変数に分割する方法は?
次の形式のcsvファイルのリストがあるとします。 INT_V1_<Product>_<ID>_<Name>_<ddmmyy>.csv ASG_B1_V1_<Product>_<ID>_<Name>_<ddmmyy>.csv INT_V1_&ASG_B1_V1_はすべてCSVファイルには、それに開始を意味し、固定されています。 ファイル名を変数に分割するにはどうすればよいですか? たとえば、名前を取得して変数に割り当てたいと考えました$Name。
11 bash  ksh 

4
サブディレクトリを含まないディレクトリを見つける
スクリプトはkshです。現在のディレクトリの直下にある、サブディレクトリではなくファイルのみを含むすべてのディレクトリ名を検索する必要があります。 ls -alR(dディレクトリの)最初のフィールドの最初の文字の出力を使用して再帰的に解析できることを知っています。awk解析して見つけるのに最適な方法だと思います。 たとえばls -al、現在のディレクトリの単純な出力は次のとおりです。 drwxr-xr-x 22 af staff 748 18 Mar 22:21 . drwxr-xr-x 5 root admin 170 17 Mar 18:03 .. -rw------- 1 af staff 3 17 Mar 16:37 .CFUserTextEncoding drwxr-xr-x 5 af staff 170 17 Mar 17:12 Public drwxr-xr-x 9 af staff 306 18 Mar 17:40 Sites …
10 shell  find  directory  ls  ksh 

3
Deleteキーがコマンドラインで機能しない
**注:これと同じ質問をSuperUserで行いましたが、応答がありませんでした。これが、この特定の質問にとってより適切なフォーラムであることに気づきました。* kshシェルでは、Deleteキーはコマンドラインで適切に機能しません。Deleteを押すと〜が表示されます。 方法: 「カーソル位置の文字を削除する」の機能を キーボードの削除ボタンにバインドしますか?(Control-Dは、削除ボタンが機能することを期待しているように動作し、エイリアスを使用する私の試みは失敗し、おそらく素朴です。) 「行の最初に移動」の機能をホームキーボードのボタンにバインドしますか?(コントロールAがこれを実行しますが、ホームに実行してもらいます。) 「行の終わりに移動」の機能をキーボードの終了ボタンにバインドしますか?(コントロールEがこれを実行しますが、終了する必要があります。) 最終(?)アップデート うまくいったことを偶然見つけましたが、理由がよくわかりません。これは機能します: bind '^[[3'=prefix-2 bind '^[[3~'=delete-char-forward http://www.qnx.com/developers/docs/6.3.2/neutrino/utilities/k/ksh.html#bindによると、 prefix-2 Key binding: ^X, ^[[ Introduces a 2-character command sequence. 私の更新された質問は、なぜprefix-2これを使用する必要があるのですか?私が理解できるように私のために翻訳してください。そうすれば、これについてみんなに再度バグを報告する必要がなくなります。 古いものは次のとおりです 更新 QNXのESCは^[です。コマンドbind '^[[3~'='delete-char-backward'を使用して、カーソルの下の文字をで上書きすることができます~。これは少なくともある程度の進歩です-私は今、シェルのDelete Keyの綴り方を知っています。私がウェブで見たほとんどのことは^?、削除キーはであると言っていますが、それは私にはうまくいかないようです。また、私はPuTTyを介してこれにアクセスしていることにも言及する必要があります。 Control Dが削除キーにしたいことをしているので、わかりません。私はそれをeot-or-delete再び結合して無益にしようとした。 これは簡単ですよね? 更新2: bind | grep prefix ^X = prefix-2 ^[ = prefix-1 ÿ = prefix-3 ^[O = prefix-2 …

3
親プロセスへのSIGINTの伝播の防止
子シェルスクリプトの実行中にControl + C(またはINTR文字に設定されている文字)を押すと、親プログラム(C ++プログラムまたはシェルスクリプト)が子シェルスクリプトを実行するシナリオを考えます。 SIGINTは、フォアグラウンドプロセスグループのすべてのプロセスに送信されます。これには、親プロセスが含まれます。 出典:POSIX.1-2008 XBDセクション11.1.9 このデフォルトの動作をオーバーライドする方法はありますか?子プロセスだけが親に伝播せずに信号を処理することですか? 参照:スタックオーバーフローポスト-子が中断されたときに親プロセスが完了しない(TRAP INT)

1
ksh93はとても高速ですか?
そのため、一般的に、私はsedテキスト処理、特に大きなファイルを探す傾向があり、通常はシェル自体でそのようなことを行うのを避けます。 しかし、それは変わるかもしれないと思います。私はあちこち見ていてman ksh、これに気づきました: <#pattern Seeks forward to the beginning of the next line containing pattern. <##pattern The same as <# except that the por‐ tion of the file that is skipped is copied to standard output. 実世界の有用性に懐疑的だったので、試してみることにしました。やった: seq -s'foo bar ' 1000000 >file ...次のような100万行のデータの場合: 1foo bar ... 999999foo bar 1000000 …


2
アンパサンドを含むサブディレクトリ名をエスケープするにはどうすればよいですか?
Kornshellを実行し、ディレクトリツリーをトラバースしようとしています。次のような名前のサブディレクトリにcdしたいとします。 -3ab_&_-3dc.img 私の質問は、この名前のアンパサンドをどのようにエスケープする必要があるのですか?二重引用符とバックスラッシュのさまざまな組み合わせを試しましたが、成功しませんでした。

3
ケース+ケース構文で等しいかそれ以下またはそれ以上を実装する方法
私の目標は、数値の範囲を(case+ のみでesac)確認し、その範囲を印刷することです。だから例えば: 数値が0〜80の場合、印刷 >=0<=80 数値が81から100の間の場合、印刷 >=81<=100 等 以下の私のスクリプトの問題は、>=0<=900から9までの数値の場合のみ印刷されます。数値の範囲に従って正しい出力を印刷するようにスクリプトを修正する方法は? #!/bin/ksh read number case $number in [0-80]) echo ">=0<=80";; [81-100]) echo ">=81<=100";; [101-120]) echo ">=101<=120";; [121-300]) echo ">=121<=300";; esac

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 

2
2番目と3番目のファイルのヘッダーを除外して、3つのファイルを1つのマスターファイルにマージします
以下に示すように、n行の3つのファイルがあります sample1.txt ------------------------------ Date Time Name ------------------------------ 2013/10/12 12:09:09 Krish 2013/10/12 13:12:01 Ramb 2013/10/12 15:28:39 Likha 2013/10/12 15:56:12 Mat . . . Sample2.txt ------------------------------ Date Time Name ------------------------------ 2013/10/12 11:19:21 Jack 2013/10/12 12:11:09 Rob 2013/10/12 15:45:12 Rick 2013/10/12 22:11:10 Phil . . . Sample3.txt ------------------------------ Date Time Name ------------------------------ 2013/10/12 …

3
AIX上のkshは、ファイル名の補完にタブキーを使用するように構成できますか?
インストールできるソフトウェアに制限されているAIX 7サーバーがいくつかありksh、タブキーを使用してシェルプロモーションでファイル名を完成できるかどうか疑問に思っています。 マニュアルページはkshのまばらで、この理由をカバーする関連する質問はここにはありません。大多数のユーザーがkshを使用しているため、私は自分のシェルをbashにシフトするのをためらっていますが、それは簡単なことだと思います。 私は最初にputty / sshを使用してPCからログインし、X11転送がPC上のHummingbird Exceedへのトラフィックを戻すと、ほとんどxtermから作業します。 bos.rte.shellAIX 7.1に同梱されている/ usr / bin / ksh は、Tabキーを押してファイル名の補完をトリガーするように構成できますか(通常はESC + \を押すことでトリガーされます)?
8 ksh  aix 

1
Kornシェル:End、pgup、pgdown、deleteキーが機能しない
したがって、基本的に、私のEnd、Pageup/ Pagedown、およびDeleteキーはksh93では機能しません。ちなみに私はFreeBSDを実行しています。 矢印キーが機能していて、ホームキーも機能しています。 これらのキーは、これを自分の中に入れると機能します .kshrc set -o emacs 私がやって試してみましたが、これを私の中でこれを置くことによって、.kshrc。Endキーを機能させるため。 alias __Y=`echo "\005"` # end = ^e = end of line vimを開き、を押しCtrlvてタイプしました005。そして^E現れた。それでも、何もうまくいきませんでした。 誰かがとにかくそれらのキーを機能させることを知っていますか? また、これらのキーを押すと、が出力されます~。また、を使用できることCtrld、またはCtrla使用したくないことも知っています。

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