我在中有一个sample.txt文件用户名:名:姓:电话号码格式(带有几行,并且我想创建一个将每行转换为这种格式的脚本:Bash逐行读取文件并使用awk
uid: Username
cn: LastnameFirstname
sn: Firstname
tel:Telephone number
到目前为止,我已经成功地创建了citire功能读取并打印OK仅在sample.txt的有一行
citire() {
uid=$1
l=$2
while read -r line
do
name=$line
if [ -z "$3" ]
then
echo -e "$uid:`echo $name|awk -F ":" '{print $"'$l'"}'`"
else
l2=$3
echo -e "$uid: `echo $name|awk -F ":" '{print $"'$l'" $"'$l2'"}'`"
fi
done < /home/alexandrumohora/teste/sample.txt
}
citire uid 1
citire cn 3 2
citire sn 2
citire tel 4
能否请你告诉我我应该怎么修改。使它每次打印每条记录(文件的行)?
谢谢!
外壳是从中调用工具的环境。 awk是解析/处理文本文件的工具。您应该在awk中完成此操作,并从shell中调用它。 –
哦,永远不要像awk和shell那样跳出来,就像''{print $'''$ l'“}''一样。这是完全没有必要的,并且极易出错。 –