在读取ls实例的结果时,我正在尝试使用sed显示特定行的特定术语:
这是我到目前为止所做的事情:
echo $(ls -lAtro | sed -n '3p' | cut -d' ' -f 6 )
这是阅读第3行的第6个学期。我想要做的是用一个更简单的变量替换'3p',这样可以做到这样的事情:
linetoread=3
echo $(ls -lAtro | sed -n "$linetoread" | cut -d' ' -f 6 )
上面的例子当然不起作用,但你明白了。我能做些什么来实现这个目标?提前谢谢。
答案 0 :(得分:0)
尝试使用awk
-
line=3 ;
ls -lAtro | awk -v var="$line" 'NR==var {print $6}'
这将变量line=3
并将其输入awk
(awk -v
部分)。
NR==var
可确保您获得与您的变量相对应的行。
然后,您可以更改print $6
部分以匹配您想要的任何列。请注意,默认分隔符是一个空格。
当然,正如评论中所指出的,你不应该解析ls
的输出。