.txt
我正在编写一个 shell 脚本,它需要从格式错误的纯文本文件中检索键值对。.txt
s 是已保存为纯文本的 MS Word 文档。正如您从下面的示例中看到的那样
Sample_Profile.txt
,键后面是由左括号和右括号分隔的值。
用户名 (傻瓜) 用户姓氏 (Goofberg) 电子邮件地址 (goofball@example.com) 密码(sogoofedrightnow) 1. 简介详情 个人资料名称*(Goofball 的个人资料)个人资料 ID** (Guid2763944-a234)
唯一的问题似乎是在将键与其值匹配时忽略空格和空行。总之,我想做的是指定键(例如“用户名”或“配置文件名”)和grep
相应的值,最后通过管道传递给我sed
,这样我就得到了我需要的值。
这是我编写的脚本,用于获取“用户名”的值。
FIRST_NAME=$(grep "User First Name" Sample_Profile.txt | sed 's|[^(]*(\([^)]*\)).*|\1|')
#grep User First Name key and pipe to sed to get the value bewteen parentheses
sed -i -e 's/USER_FIRST_NAME/'"$FIRST_NAME"'/g' UserName.txt
echo $FIRST_NAME
# outputs "User First Name" when it should get "Goofball" (grep is not
# piping correctly due to white space)