我是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
命令来实现此输出。
答案 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,
"在追加