基本上我遇到麻烦的是当我输入:file *
我会得到:
AdvDataStructures.text.ref: ASCII text
makefile: ASCII make commands text
makelib: ASCII English text
README.txt: ASCII Pascal program text
shell3_2016.sh: ASCII text
shell3_2016.sh~: ASCII text
smallTestDir: directory
smallTestDir.text.out: empty
smallTestDir.text.ref: ASCII text
testarg0.text.ref: ASCII text
testarg1.text.ref: ASCII text
testbaddir.text.ref: ASCII text
当我使用
时for i in `file *`
它读取i中用空格分隔的每个单词。我需要它在每行读取:AdvDataStructures.text.ref:ASCII文本,所以我可以查看它的模式。
另外,我不知道怎么做到这一点当我读到这行时,我不得不读取被调用文件中的行数。有没有办法喜欢调用输出的第一个单词,所以它知道读取文件名?
基本上,我必须做的一个例子是一次读取一行(AdvDataStructures.text.ref:ASCII文本),如果模式在其中找到匹配(我知道如何使用egrep执行此操作)它将计算文件中的行数(AdvDataStructures.text.ref)
答案 0 :(得分:0)
通常的方法是使用while read
循环:
file * | while read filename description; do
filename=${filename%:} # remove : after filename
...
done