附加到新行

时间:2018-01-24 23:16:23

标签: linux append newline

我在目录中有一堆* .rpm文件,并希望将每个迭代从我的for循环追加到文件中的新行。我该怎么做?问题是,对于当前输出,所有输出都写入第一行,而其他行留空。我希望我在每个文件中运行的输出在“x.txt”的新行中输出。

这就是我所拥有的:

for i in *;do
    rpm --queryformat "%{NAME} %{VERSION} %{RELEASE} %{SourceRPM}  %{Summary} %{Group} %{URL} %{ARCH}" -qp  "$i"   ;
done  >> x.txt

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:3)

我有点惊讶rpm没有添加换行符。不过你可以手动添加一个。

没有换行符的示例:

$ rm -f a.txt ; for i in 1 2 3; do echo -n $i ; done >> a.txt
$ cat a.txt
123$

换行示例:

$ rm -f a.txt ; for i in 1 2 3; do echo -n $i ; echo ; done >> a.txt
$ cat a.txt
1
2
3
$

答案 1 :(得分:0)

根据您在问题中发布的信息,您只需在每次迭代结束时添加一条空的echo指令。此操作在每次迭代产生的输出结尾处添加一个新行,正如@smoe尝试用简化示例解释的那样。

使其适应您问题中的已发布代码:

for i in *;do
    rpm --queryformat "%{NAME} %{VERSION} %{RELEASE} %{SourceRPM}  %{Summary} %{Group} %{URL} %{ARCH}" -qp  "$i"   ;
    echo ;
done  >> x.txt

答案 2 :(得分:0)

您应该自己添加换行符。

正确的答案是这样:

rpm -qa --qf "%{NAME}\n" > app.list