小编Emm*_*ndo的帖子

在图像文件的角落添加文件名作为文本

我有一堆 jpeg 图像。说001abcd.jpg,, 002abcd.jpg等等。

我想捕获文件名并将其作为文本添加到图像本身的一个角落。因此,结果将是,例如,该文件003abcd.jpg将在该图像的一个角印上“003abcd”。(扩展名不必在那里。)

我想要一个可以批量处理数百张图像并在其各自的图像中添加自己的文件名的终端命令。

我正在使用 Linux Mint 17。

有人告诉我 imagemagick 可能很有用,但我不知道脚本。

在所有图像中放置一个通用文本很容易。但我不知道如何一次性将唯一的文件名作为相应图像中的文本。

shell-script imagemagick image-manipulation text

10
推荐指数
2
解决办法
6779
查看次数

awk sub 正在执行全局替换,而不是仅第一次出现

我有这个 csv 文件,用分号分隔。我只想将第 8 个字段中第一次出现的 1 替换为 77。但 awk 命令将第 8 字段中的所有 1 替换为 77。我该怎么办?

原始 csv

1;abc;1;;;;;1;;1;;1;;;;;1;;;1;;
2;def;1;;;;;1;1;1;;;;;1;;;;1;;;
3;ghi;1;;;;1;1;1;1;;1;;1;1;;;;;1;;
4;jkl;1;;;;;1;;1;;1;1;;;1;;;;1;;
Run Code Online (Sandbox Code Playgroud)

我试过这个

awk 'BEGIN{FS=OFS=";"} {sub(1, 77, $8)} {print}' ser.csv > tmp.csv
Run Code Online (Sandbox Code Playgroud)

我正期待着这个

1;abc;1;;;;;77;;1;;1;;;;;1;;;1;;
2;def;1;;;;;1;1;1;;;;;1;;;;1;;;
3;ghi;1;;;;1;1;1;1;;1;;1;1;;;;;1;;
4;jkl;1;;;;;1;;1;;1;1;;;1;;;;1;;
Run Code Online (Sandbox Code Playgroud)

但我明白了。

1;abc;1;;;;;77;;1;;1;;;;;1;;;1;;
2;def;1;;;;;77;1;1;;;;;1;;;;1;;;
3;ghi;1;;;;1;77;1;1;;1;;1;1;;;;;1;;
4;jkl;1;;;;;77;;1;;1;1;;;1;;;;1;;
Run Code Online (Sandbox Code Playgroud)

awk text-processing

0
推荐指数
1
解决办法
383
查看次数