Bash,从vi文件中运行命令并替换命令的值

时间:2014-11-25 10:33:29

标签: bash unix

我有一个内容为

的ProjectID.lst文件
13217
13214

我有另一个档案

包含内容的Report.lst

Aggregation|`sed -n '1p' ProjectID.lst`|`sed -n '2p' ProjectID.lst

当我做cat Report.lst时,我想要以下o / p来

Aggregation|13217|13214

你能建议怎么做吗?我所遵循的方法不起作用。

2 个答案:

答案 0 :(得分:1)

你可以试试这种方式

cat Report.lst
#!/bin/bash
echo "Aggregation|`sed -n '1p' ProjectID.lst`|`sed -n '2p' ProjectID.lst`"

或只使用一个sed命令

echo "Aggregation|`sed  'N;s/\n/|/' ProjectID.lst`"

生成

bash Report.lst

输出

Aggregation|13217|13214

说明:

cat命令只打印文件的内容,shell将执行后面的tic并获取确切的结果。然后你需要使用echo语句打印输出。

答案 1 :(得分:0)

:!<shell command>通过给定的外部命令过滤突出显示的文本。您可以使用V突出显示空行,然后调用:!<command>以使<command>的输出替换(空)行。

对于我想要做的事情的描述有点过于模糊,我无法根据您的具体需求对其进行调整。