Unix & Linux

Linux、FreeBSDおよび他のUn * xのようなオペレーティングシステムのユーザーのためのQ&A

4
テキストファイルから文字列を分割する高速な方法?
string.txtとlengths.txtの2つのテキストファイルがあります。 String.txt: abcdefghijklmnopqrstuvwxyz lengths.txt 5 4 10 7 ファイルを入手したい >Entry_1 abcde >Entry_2 fghi >Entry_3 jklmnopqrs >Entry_4 tuvwxyz 私は約28,000のエントリで作業しており、それらは200から56,000文字の間で異なります。 現在、私は使用しています: start=1 end=0 i=0 while read read_l do let i=i+1 let end=end+read_l echo -e ">Entry_$i" >>outfile.txt echo "$(cut -c$start-$end String.txt)" >>outfile.txt let start=start+read_l echo $i done <lengths.txt しかし、それは非常に非効率的です。より良いアイデアはありますか?

4
固定幅でマニュアルページを印刷する
コマンド例では man apropos > outputfile のフォーマットされたmanページを含むテキストファイルが生成されます(太字など、画面aproposにman apropos直接印刷する場合との違いが少しあります)。 しかし、すべての段落がその幅に揃えられるように、生成された出力ファイルの最大行幅を手動で設定したいと思います。 manページは次の方法で作成されますgroff。たとえば、.ll 50元の.gz manソーステキストファイルの段落の前に配置しようとしましたが、複数のmanページで作業する必要がある場合は簡単です。さらに、すべての文字が認識されるわけではありません。 apropos.1:45: warning: can't find character with input code 195 apropos.1:45: warning: can't find character with input code 168 apropos.1:47: warning: can't find character with input code 178 apropos.1:131: warning: can't find character with input code 169 なので、もっと簡単な方法はあるのかな。の作成中に最大線幅を変更するにはどうすればよいoutputfileですか?特定のコマンドはありますか? 編集: (以下のすべての考慮事項はUbuntu …

1
rhel / centos-6 initスクリプトでデーモンを起動する標準的な方法は何ですか?
ubuntuのstart-stop-daemonに関する優れたドキュメントがたくさん見つかりましたdaemon。バイナリのmanページがあります。 しかし、rhel / centosスクリプトでデーモンを開始する正規の方法から、ソース/etc/init.d/functionsを指定してdaemon()関数を使用することができます。しかし、良い例やドキュメントは見つかりません。 rhel / centos-6 initスクリプトでデーモンを起動する標準的な方法は何ですか? 私の最初の試みは: #!/bin/bash source /etc/init.d/functions daemon --user USER nohup /path/to/your/binary arg1 arg2 >/dev/null 2>&1 &


2
armv7でのX86バイナリの実行
Raspberry Pi2でSNBC USBプリンターを実行しようとしています。 そのために、SNBC USBプリンターのフィルターバイナリをにコピーする必要があります/usr/lib/cups/filter。しかし、フィルターバイナリはx86プロセッサを使用してコンパイルされています(メーカーはarmをサポートする必要はありません)armv7。私はそれがうまくいかないことを知っていますが、好奇心のために私は試しました、そしてカップは言い/usr/lib/cups/filter/rasterorp3150 failedます。 インターネットで解決策を探したところ、Qemuの使用を勧められました。しかし、それは完全なx86から​​プラットフォームを準備するためのものです。簡単で単純な方法でx86バイナリをarmバイナリに変換する方法はありますか? ちなみに、hexeditツールを使用してx86バイナリを同等のarmv7バイナリに変換するのは良い考えですか。(opcode変換) もしそうなら、誰でもそれを行う方法についていくつかのアイデアを与えることができますか?
11 arm  qemu  x86 

3
文字列からBashの「単語」の配列に移動する
文字列から、各エントリがその文字列の各単語である配列に移動する必要があります。たとえば、次のように始まります: VotePedro="Vote for Pedro" 配列が必要です: Vote For Pedro 次に私は次のように反復できるはずです: for i in "${votePedroArray[@]}" do ## Do something done

2
Sedは行からすべての開始パターン一致を削除します
次の行があります。 abababtestab 変換された行が次のようになるように、行の先頭からのsedすべての出現を削除する式を理解しようとしていabます: testab これは簡単なはずですが、本当に何も知りませんsed。 これまでのところ: sed 's/^ab//' しかし、これはabの最初の出現を削除するだけです。
11 sed 

1
updatebは、見つけるよりもはるかに高速ですか?
どのupdatedbようにはるかに高速findですか? updatedbとfind、一見似たようなタスクを実行するコマンドの時間を比較します。 compare.sh #!/usr/bin/env bash cmd="sudo updatedb" echo $cmd time eval $cmd cmd="sudo find / \ -fstype ext4 \ -not \( \ -path '/afs/*' -o \ -path '/net/*' -o \ -path '/sfs/*' -o \ -path '/tmp/*' -o \ -path '/udev/*' -o \ -path '/var/cache/*' -o \ -path '/var/lib/pacman/local/*' -o \ …
11 find  locate  updatedb 

1
Centos 7 / Gnomeアプリケーションのメニュー項目が応答しない
CentOS 7にgnomeをインストールしました。しばらく稼働した後、「アプリケーション」メニューの下の項目が応答しません。*メニューとサブメニューを開いて、マウスポインターで項目にカーソルを合わせることができます。正しくハイライト表示されますが、クリックには反応しません。 項目はキーボードナビゲーションにも反応しません。矢印キーを使用してメニュー内を移動したり項目を強調表示したりできますが、ヒットenterなどで強調表示されたアプリケーション/ツールが起動しません。 マシンを再起動すると問題は解決しますが、問題の解決策としては手に負えないようです。 *「活動の概要」項目を除く
11 centos  gnome  menu 

3
シェルスクリプトのパス変数の最後にスラッシュを使用する必要がありますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 今日は私のシェルスクリプトを書いています。 いきなり質問が浮かんできました。 以来cd /target_dir、cd /target_dir/両方とも動作します。 シェルスクリプトのパス変数の最後にスラッシュを追加する必要がありますか? このようなLOG_PATH=/data/nginx/logs対LOG_PATH=/data/nginx/logs/。 グーグルで粗検索をしましたが、これについての議論は見つかりませんでした。 今のところ、どのスタイルを選ぶかを決めるのは本当に難しいです。 しかし、私LOG_PATH=/target_dir/はもう少しスタイルを好んだ。 私がbashでオートコンプリートを実行しているときは、スラッシュで結果がポップされるからです。 これについてあなたの意見は何ですか、なぜですか?

4
ネストされたループでシェルスクリプトを終了する
ネストされたループを持つシェルスクリプトがありますが、「exit」は実際にはスクリプトを終了せず、現在のループのみを終了することがわかりました。特定のエラー条件でスクリプトを完全に終了する別の方法はありますか? 許容可能なエラーがあり、多くの書き換えが必要になるため、「set -e」を使用したくありません。 現在、私はkillを使用して手動でプロセスをkillしていますが、これを行うにはもっと良い方法があるはずです。
11 bash  shell  scripting  exit 

3
「yum update」を使用したCentOS 7のアップデートが機能しない
CentOS 7を実行しているVMを長期間使用していません。今日私はそれを起動し、を使用してCentOSシステムを最新バージョンに更新しようとしましたyum updateが、多くのエラーが発生しました: Loaded plugins: fastestmirror, langpacks http//bay.uchicago.edu/centos/7.0.1406/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found Trying other mirror. http//mirror.cs.pitt.edu/centos/7.0.1406/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found Trying other mirror. http//mirror.anl.gov/pub/centos/7.0.1406/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 403 - Forbidden Trying other mirror. http//mirror.pac-12.org/7.0.1406/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not …
11 centos  upgrade 

2
Ansibleタスクで動的に名前が付けられた変数をどのように登録しますか?
Ansibleタスクを使用して、2つのグループ(syslogおよびutmp)のグループIDを名前で取得しようとしています。テスト目的で、Ansibleホスト自体から情報を取得するためのプレイブックを作成しました。 --- - name: My playbook hosts: enabled sudo: True connection: local gather_facts: False tasks: - name: Determine GIDs shell: "getent group {{ item }} | cut -d : -f 3" register: gid_{{item}} failed_when: gid_{{item}}.rc != 0 changed_when: false with_items: - syslog - utmp 残念ながら、プレイブックを実行すると次のエラーが表示されます。 fatal: [hostname] => error while …
11 ansible 

3
2つの列の値を組み合わせるにはどうすればよいですか?
次の形式のファイルがあります。 $ cat /tmp/raw 2015-01 5000 1000 2015-02 6000 2000 2015-03 7000 3000 次に、各行の列2と3から結合された値を取得して、結果が次のようになるようにします。 2015-01 6000 2015-02 8000 2015-03 9000 私はこれを試しましたが、2015-03の値のようなファイルの最後の値しか表示されません。

1
mutt:絵文字を正しく表示するには?
muttで絵文字を適切に表示したいのですが、たとえば、💗がmuttのページャーで^ Jとして表示されます。ランニング :set pager=view メッセージを再度開くと、vimで文字が正しく表示されます。 問題のメールはPGPで暗号化されていますが、暗号化されていないメール(https://groups.google.com/forum/#!topic/comp.mail.mutt/50_MpyYkXR4)でも同じだと思います。 私はこの投稿も見つけました(/programming/23526353/how-to-get-ncurses-to-output-astral-plane-unicode-characters)。これは私が遭遇している可能性のある問題を説明しています、しかし、先に述べたように、vimは同じ端末ウィンドウで文字をうまく表示します。さらに、私はglibc 2.19を使用していますが、これら2つのアプリケーションが同じシステム上で異なるバージョンのglibcをどのように使用できるのかわかりません。 muttの組み込みのポケットベルでこれらを正しく表示する方法はありますか? 編集:だから私は「mutt」と「vim」以外の関連するものを含めるのを忘れました...私はmutt-patchedパッケージでDebianの安定版を実行しています。 $ uname -r 3.16.0-4-amd64 $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.0 (jessie) Release: 8.0 Codename: jessie $ mutt -v Mutt 1.5.23 (2014-03-12) Copyright (C) 1996-2009 Michael R. Elkins and others. Mutt comes …
11 vim  mutt  unicode 

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