我想迭代ls -l/some/dir/*输出中的每一行现在我正在尝试:ls -l /some/dir/*但是这会分别迭代行中的每个元素,所以我得到
-r - r -----
1
ivanevf
eng
1074
Apr
22
13:07
File1-r - r -----
1
ivanevf
eng
1074
Apr
22
13:17
File2
但是我想整个迭代每一行.
我怎么做?
谢谢.
Ran*_*tor 237
将IFS设置为换行符,如下所示:
IFS='
'
for x in `ls -l $1`; do echo $x; done
Run Code Online (Sandbox Code Playgroud)
如果您不想永久设置IFS,请在其周围放置一个子shell:
(IFS='
'
for x in `ls -l $1`; do echo $x; done)
Run Code Online (Sandbox Code Playgroud)
或者在使用时使用 请改为:
ls -l $1 | while read x; do echo $x; done
Run Code Online (Sandbox Code Playgroud)
还有一个选项,它在同一个shell级别运行while/read:
while read x; do echo $x; done << EOF
$(ls -l $1)
EOF
Run Code Online (Sandbox Code Playgroud)
这取决于你想要对每一行做什么.awk是这种处理的有用实用程序.例:
ls -l | awk '{print $9, $5}'
Run Code Online (Sandbox Code Playgroud)
..在我的系统上打印目录中每个项目的名称和大小.
| 归档时间: |
|
| 查看次数: |
98675 次 |
| 最近记录: |