5

ディレクトリからすべてのファイル名を読み取り、ファイル名に応じて、たとえば R1 または R2 が含まれている場合、名前に R1 などを含むすべてのファイル名を連結するスクリプトを作成する必要があります。

誰かがこれを行う方法のヒントを教えてもらえますか?

私ができた唯一のことは次のとおりです。

#!/bin/bash

FILES="path to the files"

for f in $FILES
do
  cat $f
done

これは、変数 FILE がファイルではなくディレクトリであることを示しているだけです。

4

2 に答える 2

11

問題を解決するための最小限の変更を行うには:

dir="path to the files"
for f in "$dir"/*; do
  cat "$f"
done

希望する最終目標として説明したものを達成するには:

shopt -s nullglob
dir="path to the files"
substrings=( R1 R2 )
for substring in "${substrings[@]}"; do
  cat /dev/null "$dir"/*"$substring"* >"${substring}.out"
done

は 1 回の呼び出しで複数のファイルを取得できることに注意してくださいcat。実際、そうしない場合、通常は cat をまったく使用する必要はありません。

于 2012-06-04T12:20:02.160 に答える
0

簡単なハック:

ls -al R1 | awk '{print $9}' >outputfilenameR1

ls -al R2 | awk '{print $9}' >outputfilenameR2

于 2014-09-03T00:02:26.883 に答える