重複の可能性:
bash変数で指定されたファイルのbashエコー行数
テキスト ファイルの行数を画面に出力し、それを変数に格納する方法を考えていました。stats.txt というファイルがあり、実行するwc -l stats.txt
と出力されます8 stats.txt
x = wc -l stats.txt
数字だけを保存し、残りは視覚的なものだと思ってやってみましたが、うまくいきません:(
助けてくれてありがとう
重複の可能性:
bash変数で指定されたファイルのbashエコー行数
テキスト ファイルの行数を画面に出力し、それを変数に格納する方法を考えていました。stats.txt というファイルがあり、実行するwc -l stats.txt
と出力されます8 stats.txt
x = wc -l stats.txt
数字だけを保存し、残りは視覚的なものだと思ってやってみましたが、うまくいきません:(
助けてくれてありがとう
これを行うための 2 つの POSIX 標準構文があります。
x=`cat stats.txt | wc -l`
また
x=$(cat stats.txt | wc -l)
どちらもプログラムを実行し、スクリプト内の呼び出しをコマンドの標準出力に置き換えます。この場合は$x
変数に割り当てます。ただし、どちらも末尾の改行を削除することに注意してください (これは実際にここで必要なものですが、改行が必要な場合は危険な場合があります)。
また、2 番目のケースは簡単にネストできます (例: $(cat $(ls | head -n 1) | wc -l)
)。最初のケースでも実行できますが、より複雑です:
`cat \`ls | head -n 1\` | wc -l`
引用の問題もあります。これらの式は二重引用符で囲むことができますが、バックティックを使用すると、コマンド内で引用を続ける必要があり、括弧を使用すると「新しい引用グループを開始」できます。
"`echo \"My string\"`"
"$(echo "My string")"
これが役立つことを願っています=)
あなたが試すことができます:
x=`cat stats.txt | wc -l`
または(another.anon.cowardのコメントから):
x=`wc -l < stats.txt`