Shell 在unix中,需要将字符串连接到ls命令输出的每一行

Shell 在unix中,需要将字符串连接到ls命令输出的每一行,shell,unix,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命令应该是什么。您不能单独使用ls在每个文件之前附加数据ls存在以列出文件。

我是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
命令应该是什么。

您不能单独使用
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

以下方面应起作用:

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

它接受由
ls
过滤的每一个文件名,并在追加之前添加“
STR,
”前缀。我需要在listing and redirecting命令中执行此操作。在问题中,我提到了这一点。@TechVolcano ls FILE*| sed's/^/STR,/'>FLIST.TXT