[解決済み] bash echo ファイル名なしでbash変数に指定されたファイルの行数
2023-07-04 08:09:14
質問
bashスクリプトの中に以下の3つの構成があります。
NUMOFLINES=$(wc -l $JAVA_TAGS_FILE)
echo $NUMOFLINES" lines"
echo $(wc -l $JAVA_TAGS_FILE)" lines"
echo "$(wc -l $JAVA_TAGS_FILE) lines"
そして、どちらもスクリプトを実行したときに同じ出力を生成します。
121711 /home/slash/.java_base.tag lines
121711 /home/slash/.java_base.tag lines
121711 /home/slash/.java_base.tag lines
すなわち、ファイルの名前もエコーされます(私はそうしたくないのですが)。なぜこれらのスクリプトは失敗し、どのように私はきれいなを出力する必要があります。
121711 lines
?
どのように解決するのですか?
自分のデータを使った例
にファイル名が埋め込まれるのを避けることができます。 NUMOFLINES 変数に埋め込まれるのを避けることができます。 JAVA_TAGS_FILE への引数としてファイル名を渡すのではなく、リダイレクションを使って wc . 例えば
NUMOFLINES=$(wc -l < "$JAVA_TAGS_FILE")
説明 パイプやリダイレクトを使用して出力にファイル名が含まれないようにする
このような場合 wc ユーティリティは、入力がパイプやリダイレクト演算子から取得される場合、その出力にファイル名を表示しません。これらのさまざまな例について考えてみましょう。
# wc shows filename when the file is an argument
$ wc -l /etc/passwd
41 /etc/passwd
# filename is ignored when piped in on standard input
$ cat /etc/passwd | wc -l
41
# unusual redirection, but wc still ignores the filename
$ < /etc/passwd wc -l
41
# typical redirection, taking standard input from a file
$ wc -l < /etc/passwd
41
ご覧の通り、唯一 wc がファイル名を表示するのは、標準入力のデータとしてではなく、引数として渡されたときだけです。場合によっては、ファイル名が表示されることを望むかもしれないので、いつ表示されるかを理解しておくと便利です。
関連
-
[解決済み] Bashスクリプトでスクリプトファイル名を知るには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Bashでファイルの中身をループする
-
[解決済み] Bashスクリプトでカレントディレクトリ名(フルパスなし)を取得する
-
[解決済み] Bashでインデックスを指定せずに配列に新しい要素を追加する
-
[解決済み] Bashで変数が数値であるかどうかをテストするにはどうすればよいですか?
-
[解決済み] シェルスクリプトからエコーを使わずにパスワードを取得する方法
-
[解決済み] Bashでsshして複数のコマンドを実行する最もクリーンな方法は何ですか?
-
[解決済み] スクリプトの実行に関連したファイルの参照
-
[解決済み] このbashのフォーク爆弾はどのように機能するのでしょうか?重複
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] bashでwcから整数値だけを取得する
-
[解決済み] bash に次の行に進むように指示する方法
-
[解決済み] Bashでコマンド出力を隠す方法
-
[解決済み] Bashでファイルを転置する効率的な方法
-
[解決済み] bashのcurlステートメントに'&'文字を含める方法
-
[解決済み] homebrew パッケージがインストールされているかどうかを検出する
-
[解決済み] Bashのコマンドラインと入力制限
-
[解決済み] sed を使ってファイルの名前を大量に変更する
-
[解決済み] スペースで区切られた引数の受け渡し (bash) スクリプト
-
[解決済み] Bashで文字列の一文字目を削除する