私はこの一連のコマンドを実行しているback tickを使用しているときにbashがファイルディレクトリを返すのはなぜですか?
passwd=`wc -l /etc/passwd`
echo $passwd
戻り値:
34 /etc/passwd
私はそれだけでwc -l
の出力を表示するように、これに行うには何が必要ですか?
私はこの一連のコマンドを実行しているback tickを使用しているときにbashがファイルディレクトリを返すのはなぜですか?
passwd=`wc -l /etc/passwd`
echo $passwd
戻り値:
34 /etc/passwd
私はそれだけでwc -l
の出力を表示するように、これに行うには何が必要ですか?
おそらくawk
を使用していますか?
$ passwd=$(wc -l /etc/passwd | awk '{print $1}')
$ echo $passwd
32
もcut (GNU coreutils)
$ passwd=$(wc -l /etc/passwd | cut -d" " -f1)
$ echo $passwd
32
wc
のデフォルトの動作です:
» wc -l /etc/passwd
28 /etc/passwd
ない出力にファイル名をトイレに指示する方法はありません。
しかし、回避策があります: 'cat/etc/passwd | wc -l' – Leon
wc
戻り、ファイル名から、cut
を使用して、それを行うには、他の方法があります。いくつかの例:
passwd=`wc -l /etc/passwd | grep -o [1-9]\*`
または
passwd=`wc -l /etc/passwd | cut -f1 -d' '`
(この質問の答え:get just the integer from wc in bash):
$ passwd=`wc -l < /etc/passwd`
$ echo "$passwd"
86
だけではなく、wc
にファイル名を与えるの標準入力から読み込ま
wc
はかなりabを出力します。それはパディングですが、ファイル名は省略されます(wc
はデータがどのファイルから来るのか分かりません)。
passwd = $(cat/etc/passwd | wc -l) – Leon