需要在unix

时间:2015-05-25 05:52:00

标签: shell unix

我是Shell脚本的初学者。以下是我在UNIX Korn Shell中的要求。

实施例

当我们使用ls命令重定向到文件列出文件时,文件名将存储如下。

$ ls FILE*>FLIST.TXT
$ cat FLIST.TXT
FILE1
FILE2
FILE3

但我需要输出如下,带有前缀常量字符串 STR,

$ cat FLIST.TXT
STR,FILE1
STR,FILE2
STR,FILE3

请告诉我应该使用ls命令来实现此输出。

2 个答案:

答案 0 :(得分:7)

您不能单独使用ls在每个文件之前附加数据。列出文件时存在ls 您需要使用ls侧的其他工具。

您可以使用sed命令附加到每行的前面:

cat FLIST.TXT | sed 's/^/STR,/'

这会将更改发送到stdout

如果您想要更改实际文件,请运行sed

sed -i -e 's/^/STR,/' FLIST.TXT  

要在写入文件之前执行追加,请将ls导入sed

ls FILE* | sed 's/^/STR,/' > FLIST.TXT

答案 1 :(得分:2)

以下内容应该有效:

ls FILE* | xargs -i echo "STR,{}" > FLIST.TXT

每个文件名都按ls过滤,并添加" STR,"在追加

之前加上它的前缀