我有一个包含5000条记录的文件,主要是像
这样的名字david
mathew
philip
我正在寻找一个脚本来读取该文件并创建一个类似
的ouptutinsert into names_db values(david,DAVID);
insert into names_db values(mathew,MATHEW);
insert into names_db values(philip,PHILIP);
答案 0 :(得分:3)
使用awk:
awk '{printf "insert into names_db values(%s,%s);\n", tolower($0), toupper($0)}' file
insert into names_db values(david,DAVID);
insert into names_db values(mathew,MATHEW);
insert into names_db values(philip,PHILIP);
答案 1 :(得分:1)
单个sed将完成这项工作。您不需要创建脚本。
sed 's/.\+/insert into names_db values(&,\U&);/g' file
&
指的是所有匹配的字符。 \U&
会将所有匹配的字符变为大写。
或强>
$ sed 's/.*/insert into names_db values(&,\U&);/g' file
insert into names_db values(david,DAVID);
insert into names_db values(mathew,MATHEW);
insert into names_db values(philip,PHILIP);
答案 2 :(得分:0)
这个非常简单的解决方案在参数扩展期间仅使用Bash进行大小写修改:
#!/bin/bash
stmt="insert into names_db values(%s,%s);\n"
while read name
do
printf "$stmt" "$name" "${name^^}"
done < test.txt
在bash(1)
搜索\^\^
以获取更多信息。请注意,需要Bash 4.x或更高版本。