我正在尝试将目录中所有jpg文件的列表打印到新的.txt文件中。
.txt文件中的输出格式应如下所示:
<img src="filename.jpg">
当前,我有以下命令:
ls -al *.jpg | awk ‘{print”<img src=”$9">"}' > list_of_files.txt
但是它不起作用。获得正确格式的正确命令是什么?
答案 0 :(得分:2)
awk中的一个:
$ awk '
BEGIN {
for(i=1;i<ARGC;i++) # loop all argument files
printf "<img src=\"%s\">\n", ARGV[i] # output as requested
exit # never touch any files
}' *.jpg
输出样本:
<img src="foo.jpg">
<img src="bar.jpg">
答案 1 :(得分:2)
您不需要awk或任何其他外部工具,shell可以自行完成:
printf '<img src="%s">\n' *.jpg > list_of_files.txt
答案 2 :(得分:1)
ls -A1 *.jpg | awk '{print "<img src=\""$0"\">"}' > list_of_files.txt
安全版本(以防文件中包含rm -rf .. .jpg
之类的文件:
shopt -s nullglob
for f in *; do
if [[ "$f" == *.jpg ]]; then
echo "<img src=\""$f"\">" >> list_of_files.txt
fi
done