1

以下の文字を含み、デスクトップに保存されているshadow.lab4という名前のファイルがあります。

$6$bIhKGKp3$LSd47ADZexr.4rBm8y29DLPfd1kxwyuliCea8fExg0ohMT25OAEqUOxKm7t6dj/M50PjACjD.gn.VDD8f4MVy0

現在、grepコマンドを使用して暗号化されたデータを取得し、変数encr内に保存しようとしています。次に、を使用して、取得したデータを画面に表示します

echo $encr

私の期待する出力は

LSd47ADZexr.4rBm8y29DLPfd1kxwyuliCea8fExg0ohMT25OAEqUOxKm7t6dj/M50PjACjD.gn.VDD8f4MVy0

'grep'を使用して期待される出力を取得するために使用する必要があるコードを知っていますか?

4

3 に答える 3

3

":"の区切り文字として使用する理由はわかりませんがcut、入力文字列にコロンがまったくありません。スクリプトの切り取り部分を次のように変更します

cut -d '$' -f 4
于 2012-09-02T06:31:58.080 に答える
1

暗号化:

暗号化が常に文字列の 4 番目のフィールドである場合:

encr=$(awk -F "$" '{ print $4 }' shadow.lab4)

暗号化が常に文字列の最後のフィールドである場合:

encr=$(awk -F "$" '{ print $NF }' shadow.lab4)

結果:

echo "$encr"
LSd47ADZexr.4rBm8y29DLPfd1kxwyuliCea8fExg0ohMT25OAEqUOxKm7t6dj/M50PjACjD.gn.VDD8f4MVy0

塩:

ソルトにアクセスするには、それが常に 3 番目のフィールドである場合:

salt=$(awk -F "$" '{ print $3 }' shadow.lab4)

ソルトにアクセスするには、それが常に最後から 2 番目のフィールドである場合:

salt=$(awk -F "$" '{ print $(NF-1) }' shadow.lab4)

結果:

echo "$salt"
bIhKGKp3
于 2012-09-02T08:08:48.120 に答える
0

sed仕方:

encr = `sed 's/.*\$//' file.txt
于 2012-09-02T08:34:45.367 に答える