【发布时间】:2016-04-14 01:49:32
【问题描述】:
基本上我遇到的问题是当我输入: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 *`
它读入以空格分隔的每个单词 for i。我需要它在每一行中读取为: AdvDataStructures.text.ref: ASCII text ,所以我可以通过它查看模式。
另外,我不知道如何做到这一点,所以当我在该行中读取时,我必须以某种方式读取被调用文件中的行数。有没有办法喜欢调用输出的第一个单词,所以它知道读取文件名?
基本上,如果模式在其中找到匹配项(我知道如何使用 egrep 执行此操作),我必须做的一个示例是一次读取一行(AdvDataStructures.text.ref:ASCII 文本)它将计算文件中的行数(AdvDataStructures.text.ref)
【问题讨论】:
-
这就是为什么你 don't read lines with
for和为什么 Bash FAQ 001 是如何正确地做到这一点。 (假设您不想使用像awk等“更好”的工具)