从Bash中的目录中读取文件名

时间:2012-06-04 12:19:00

标签: bash

我需要编写一个脚本来读取目录中的所有文件名,然后根据文件名,例如,如果它包含R1或R2,它将连接包含的所有文件名,例如R1中的名。

有人可以给我一些提示吗?

我唯一能做的就是:

#!/bin/bash

FILES="path to the files"

for f in $FILES
do
  cat $f
done

这只显示变量FILE是一个目录而不是它拥有的文件。

2 个答案:

答案 0 :(得分: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

请注意cat可以在一次调用中获取多个文件 - 事实上,如果您不这样做,通常根本不需要使用cat。

答案 1 :(得分:0)

简单的黑客攻击:

  

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

     

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