libcom.so
を印刷するには、最初の行を印刷するときに1.0.0
を取り除いてください。シェルで区切り文字として文字列を使用して文字列を切ります
cut: the delimiter must be a single character
、これを行うにいただきました!最良の方法として
#!/bin/sh
data=$(sed '0,/^__VERSION__$/d' "$0")
for d in $data
do
echo with version:
echo $d
echo "with no version"
d1="$(cut -d\.so -f1 <<< $d)"
#Need to save it in a variable for further processing
echo $d1
done
exit
__VERSION__
libcom.so.1.0.0
libclock.so.1.0.0
libstdc++.so.6.0.20
libxml.so.2.7.8
libmi.so.1.0.0
librt.so.6.6.5
libcsapi.so.1.0.0
エラーアウト?あなただけの最初.so
までの文字列をしたい場合は、bashは喜んであなたのためにそれを処理する
注意を使用することができます。
代わりに、あなたはそれがかなり遅くなりにもかかわらず
sed
を使用することができますこれは* bashスクリプトではないことです。あなたのデフォルトのシェルがbashであっても、 '#!/ bin/sh'のシバンを使うと、bashが多くのbash関数が利用できない* POSIX互換モード*で動作します。 '#!/ usr/bin/env bash'は、bashの特定のパス(移植可能ではないかもしれない解決策)を指しているのを好まない限り、合理的なデフォルトのシバンです。 – ghoti