遍历ls -l输出的每一行

我想遍历输出的每一行: ls -l /some/dir/*

现在我正在尝试: for x in $(ls -l $1); do echo $x; done

但是,这会分别遍历行中的每个元素,因此我得到:

-r--r-----

1

ivanevf

eng

1074

Apr

22

13:07

File1

-r--r-----

1

ivanevf

eng

1074

Apr

22

13:17

File2

但是,我想遍历整个行。我怎么做?

回答:

将IFS设置为换行符,如下所示:

IFS='

'

for x in `ls -l $1`; do echo $x; done

如果您不想永久设置IFS,请在其周围放一个子外壳:

(IFS='

'

for x in `ls -l $1`; do echo $x; done)

或同时使用| 改为阅读:

ls -l $1 | while read x; do echo $x; done

还有一个选项,它在同一shell级别上运行while / read:

while read x; do echo $x; done << EOF

$(ls -l $1)

EOF

以上是 遍历ls -l输出的每一行 的全部内容, 来源链接: utcz.com/qa/422145.html

回到顶部