Bash 用大写和小写打印文件的Unix脚本

Bash 用大写和小写打印文件的Unix脚本,bash,shell,unix,scripting,Bash,Shell,Unix,Scripting,我有一个包含5000条记录的文件,主要是像 david mathew philip 我正在寻找一个脚本来读取该文件并创建一个类似于 insert into names_db values(david,DAVID); insert into names_db values(mathew,MATHEW); insert into names_db values(philip,PHILIP); 一个sed就可以完成这项工作。您不需要创建脚本 sed 's/.\+/insert into names

我有一个包含5000条记录的文件,主要是像

david
mathew
philip
我正在寻找一个脚本来读取该文件并创建一个类似于

insert into names_db values(david,DAVID);
insert into names_db values(mathew,MATHEW);
insert into names_db values(philip,PHILIP);

一个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);

一个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);
使用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);
使用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);

这个非常简单的解决方案在参数扩展期间仅使用Bash修改大小写:

#!/bin/bash

stmt="insert into names_db values(%s,%s);\n"

while read name
do
  printf "$stmt" "$name" "${name^^}"
done < test.txt
#/bin/bash
stmt=“插入到名称中\u数据库值(%s,%s);\n”
读名字的时候
做
printf“$stmt”“$name”“${name^^}”
完成

有关详细信息,请搜索
bash(1)
中的
\^^
。请注意,需要Bash 4.x或更高版本。

这个非常简单的解决方案在参数扩展期间仅使用Bash修改大小写:

#!/bin/bash

stmt="insert into names_db values(%s,%s);\n"

while read name
do
  printf "$stmt" "$name" "${name^^}"
done < test.txt
#/bin/bash
stmt=“插入到名称中\u数据库值(%s,%s);\n”
读名字的时候
做
printf“$stmt”“$name”“${name^^}”
完成

有关详细信息,请搜索
bash(1)
中的
\^^
。请注意,Bash 4.x或更高版本是必需的。

如果要在数据库中插入,可能需要引用它们:
insert。。。(‘大卫’、‘大卫’)如果要在数据库中插入,可能需要引用它们:
插入。。。(‘大卫’、‘大卫’)