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

シェルとは、ユーザーがオペレーティングシステムとやり取りできるようにするソフトウェアで、通常はコマンドラインで入力します。

2
重複ファイルを削除し、最新のファイルのみを保持する
複数のファイルが複製されているが、ファイル名が異なるか、サブフォルダーで失われる写真ダンプフォルダーをクリーンアップしようとしています。 rmlint、duff、fdupesなどのツールを見てきましたが、最新のタイムスタンプを持つファイルのみを保持する方法を見つけることができないようです。結果を後処理する必要があると思いますが、どこから始めればよいのかさえわかりません。 誰かが重複ファイルリストを取得し、最新のファイル以外のすべてを削除する方法を教えてもらえますか?

1
win-python 2.7&3.6-スクリプトがシェルから使用するバージョンを切り替える
私は、スクリプトを置いてきたtest.py私に%USERPROFILE%フォルダ: import sys print("TEST", sys.version_info, sys.executable) 実行している場合cmd(WIN+ R)、次に入力test+ ENTER以下が返されます。 C:\Users\wittrup>test ('TEST', sys.version_info(major=2, minor=7, micro=10, releaselevel='final', serial=0), 'C:\\Python27\\python.exe') これをPython 3.6で実行したいと思います。 2つのPythonバージョンがインストールされています。 C:\Python27\python.exe C:\Users\wittrup\AppData\Local\Continuum\Anaconda3 echo %path:;=&echo.% ショー: C:\WINDOWS\system32 C:\WINDOWS C:\WINDOWS\System32\Wbem C:\WINDOWS\System32\WindowsPowerShell\v1.0\ C:\Program Files (x86)\pythonxy\SciTE-3.5.1-4 C:\Program Files (x86)\pythonxy\console C:\Users\wittrup\AppData\Local\Microsoft\WindowsApps C:\Users\wittrup\AppData\Local\Continuum\Anaconda3 C:\Users\wittrup\AppData\Local\Continuum\Anaconda3\Scripts (そして、私はこのケースに関係ないと思われる他の多くのもの) C:\Users\wittrup>echo %PATHEXT% .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW レジストリ: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Python.exe C:\Users\wittrup\AppData\Local\Continuum\Anaconda3\python.exe Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\python.exe C:\Users\wittrup\AppData\Local\Continuum\Anaconda3\python.exe ここで私を打ち負かしたのは、WindowsがPython …

1
GBをTBに変換するスクリプト
以下のリストのような(複数の)ファイルがあります。TB単位の値とGB単位のファイルの両方を持つものはほとんどありません。これで、ファイル出力が明確に表示されている場合、合計容量と使用容量の2つの行があります。awkを使用してこれを行うと、両方の行を個別に加算できますが、GB単位はほとんどありません。値がGBまたはTBであるかどうかをチェックするスクリプトを作成できますか。GBである場合はTB(1024)に変換します。 [root@localhost maneesh]# cat server1.txt Total capacity 2.0 TB Capacity used 735.23 GB [root@localhost maneesh]# 基本的に、最後にすべての値をTBで表示する必要があります。 これに関する助けをいただければ幸いです。
linux  shell  python  perl  awk 


1
Unixシェル:逆方向のマルチレベルソート
最初の行にタグがあるプレーンテキストファイルでいっぱいのディレクトリがあり、タグとその頻度のリストを取得したいです。タグを抽出し、大きなリストに並べ替えました。このように見えるとしましょう: apple banana banana banana banana orange orange kumquat pomegranate pineapple pineapple pineapple 次に、パイプを使用してuniq -c、カウント付きのリストに変換します。 1 apple 4 banana 2 orange 1 kumquat 1 pomegranate 3 pineapple 私は今、逆の順序で番号で最初に、それをソートする(最大の番号が最初)、その後でみたい前方アルファベット順に。私はこれをパイピングすることを試みますsort -bnr(先頭の空白、数値ソート、逆順を無視します)が-r、文字部分にも適用されます: 4 banana 3 pineapple 2 orange 1 pomegranate 1 kumquat 1 apple -k複数のフィールドで並べ替えるオプションについて考えましたが、先日学びましたが、異なる-kオプションに個別に反転を適用することはできないようです(おそらく、単に出力を出力するだけtacなのでしょうか?)。sort前の並べ替えを無視し、数値部分を再び混同するため、1秒をパイピングしても機能しません。 理想的には、ソリューションはまだとを使用sortしuniqますが、必要に応じて別のツールに切り替えることもできます。ただし、これはスクリプトで終わる可能性があるため、対話型ツールを必要とするソリューションが出ています。

1
シェルスクリプトの複数の条件
スクリプトで2つの条件を指定することにこだわっています。私は2つのことを読むことができます- 最も近いサーバーとは MacBookまたはそれ以外の場合 次に、デフォルトのwriteコマンドを使用して、plistファイルを変更します。 モデルとサーバーの両方をクロスチェックする行を追加して、それに応じてファイルを書き込むにはどうすればよいですか? #!/bin/sh # Get the logfile for this machine dslog="/tmp/DSNetworkRepository/Logs/$(ioreg -l | grep IOPlatformSerialNumber | awk '{print $4}' | cut -d \" -f 2).log" NEARESTSERVER=$(awk 'gsub(/.*server=|port=.*/,"")' $dslog | tail -1) # get machine model MACHINE_MODEL=`/usr/sbin/ioreg -c IOPlatformExpertDevice | grep "model" | awk -F\" '{ print $4 …
macos  mac  bash  unix  shell 




1
ファイルの最後から始まる2つのタイムスタンプ間で文字列を検索します
Cannot proceed: the cube has no data昨日の午後22時30分から今日の午前30時30分までのタイムスタンプの間にある巨大なtest.txtファイルで文字列を見つけようとしました。 スクリプト: tac test.txt | awk -v today=$(date "+%d") -v yesterday=$(date "+%d" -d yesterday) '/Cannot proceed: the cube has no data/ {f=$0; next} f{if (($3==yesterday && $4>"22:30:00") || ($4==today && $4<="00:30:00")) {print; print f} f=""}' test.txt: [Thu Jun 8 07:56:17 2014]Local/data///47480280486528/Info(1019022) Writing Database Mapping …
linux  bash  shell 


1
サブコマンドのシェル引数をどのようにエスケープしますか?
シェルスクリプトを書いているとしましょう。任意の数のコマンドライン引数を取り、それらをコマンドラインユーティリティに渡します。そのユーティリティを呼び出すときは、各引数の前にフラグを付ける必要があります。スクリプトでこれをエスケープする正しい方法は何ですか?ユーティリティはシェルスクリプトとまったく同じ文字列を見ることができますか? 具体例:に正規表現を渡しgrepます。ラッパースクリプトを実行します。 ./findit.sh needle "old socks" "spare change" そして、あなたはgrepそれらの引数をマッチ式として呼び出すことを期待しています: grep haystack.txt -e needle -e "old socks" -e "spare change" -e物事を複雑にしているのはプレフィックスです。不要な場合は、単に使用できます"$@"。grep引数が適切にエスケープされるようにするために、スクリプトは何をする必要がありますか?これを行うポータブルな方法はありますか?

1
$ 1.gzはフォルダーに存在しますが、アクセスできない、そのようなファイルまたはディレクトリーはないという
というスクリプトがあります gzip -cN "$1" > "$1.gz" | ls -l "$1.gz" | awk '{print $5}' 引数を指定して実行するとff、エラーメッセージが表示されます ls: cannot access ff.gz: No such file or directory しかし、その後ls -l(手動で、シェルプロンプトから)実行するff.gzと、そこにあることがわかります。何が問題ですか?
unix  shell 


1
ボーンシェルとawkの組み合わせ
これは私の実際のファイルWASfileです #!/bin/sh sed -i '/^ *$/d' WASfile sed -i -e '/user=/,/group_1=/{w /tmp/1' -e 'd}' /home/wasdm/WASfile; Script to Add read -p "Press [Enter] to continue for Installation" ここで、上記の[ 追加するスクリプト]に次のスクリプトを配置してから、WASfileをスクリプト(多くのスクリプトまたはコマンドの組み合わせ)として実行します。 #!/usr/bin/awk -f BEGIN { FS="=" } NR==FNR { a[$1]=$0; next } $1 in a { $0=a[$1] } /^#/ { var=$1; sub(/^#/, "", …
shell  awk 

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