【发布时间】:2012-06-25 10:04:18
【问题描述】:
我有一个多行文本文件,我想用它来创建需要 UUID 的 SQL 语句。我正在尝试想出一种使用 sed 或其他一些 shell 命令实用程序生成 SQL 的方法。
Example input:
A
B
C
Example Output:
insert into table values ('7CC92727-D743-45E0-BE57-9FEB2B73BD18','A');
insert into table values ('94E03071-F457-48DD-86E2-AF26309A192D','B');
insert into table values ('1F17525C-9215-4FC4-A608-4FA43C0B2B14','C');
我可以使用 uuidgen 命令来生成新的 UUID,但到目前为止还没有找到一种方法来将该命令与 sed 一起使用。
更新: 多亏了答案,我才能够想出一个在 cygwin 上对我有用的 sed 命令。
出于教学目的不引用 SQL 值来表达:
sed 's/.*/echo "insert into table values (`uuidgen | tr -d \r`,&)"/e' file.txt
带引号:
sed 's/.*/echo "insert into table values '\''(`uuidgen | tr -d \r`'\'','\''&'\'')"/e' file.txt
【问题讨论】: