Linux - 使用分号

时间:2015-10-26 10:54:07

标签: linux command-line

我有一个场景,我需要执行日期命令和' ls -lrth | wc -l'同时命令。

我在Google上的某个地方读到我可以使用分号以下面显示的方式执行此操作

ls -lrth | wc -l | ; date 

这个作品超级好!但问题是当我想提取这个的输出。这给出了一个两行输出,输出为" ls -lrth | wc -l"在第一行和第二行的日期输出如下所示

$ cat test.txt 
39
Mon Oct 26 16:11:20 IST 2015

但似乎linux正在将这两条线视为同一条线。 我希望这可以形成像这样的东西

39,Mon Oct 26 16:11:20 IST 2015

为此,我无法单独访问这两行(甚至没有尾巴或头部)。

提前感谢。

修改 为什么我认为linux将此视为同一行,因为当我这样做时,如下所示,

 $ ls -lrth| wc -l;date | head -1
39
Mon Oct 26 16:24:07 IST 2015

上述原因是我假设一行的事情

3 个答案:

答案 0 :(得分:2)

您是否已尝试使用回音?

echo $(ls | wc -l) , $(date)

(或类似的东西,我这里没有Linux模拟器)

答案 1 :(得分:1)

如果你想要你的脚本 ./script.sh

#!/bin/bash
a=$(ls -lrth | wc -l)
b=$(date)
out="$a,$b"
echo "$out"

修改

ls -lrth | wc -l; date |头-1 -

分号只分隔两个不同的命令“;”

答案 2 :(得分:0)

管道到xargs echo -n( - n表示最后没有换行符):

ls -lrth | wc -l | xargs echo -n ; echo -n ","; date

测试:

$ ls -lrth | wc -l | xargs echo -n ; echo -n ","; date
11,Mon Oct 26 12:57:14 EET 2015