我正在写一个脚本来处理入站数据文件。入站文件名都遵循相同的模式:bash的字符串操作 - 显示值,而不是变量名
word1_word2_word3_YYYYMMDD.txt
我的脚本需要入站文件的名称,剔除扩展名,剔除日期,替换所有下划线用空格和生成的字符串追加到每行在原始文件中。我可以成功创建所需的字符串并将其分配给变量“STR”
最后一步是将$ STR的值附加到文件中的每一行,以便文件中的数据行最终看起来像这样的:
casenumber1"|"word1 word2 word3
casenumber2"|"word1 word2 word3
casenumber3"|"word1 word2 word3
我的问题是,我的生活,我不能让庆典,以显示该变量的值,它总是显示变量名。
这是我用它来创建从文件名需要的串线:
STR=`echo $DATAFILENAME | cut -d '.' -f 1 | sed 's/[0-9]*//g'|sed 's/_/ /g' | sed 's/[[:blank:]]*$//'`
我试图用一个典型的SED替换命令:
sed 's/$/`echo "$STR"`/g' inputfile > outputfile
但不断收到变量名称代替变量值:
示例输出:
1000056|$"STR"
1000057|$"STR"
...
所需的输出:
1000056|Closed With Notification
1000057|Closed With Notification
我在做什么错?谢谢,维克
某处是,我怀疑,一个很简单的问题。你能把它修剪一下吗?例如,第一段完全没有必要。 – chepner
要添加到@ chepner的评论:如果您将其简化为一个简洁的问题描述,有代表性的样本输入和期望的输出,人们更有可能帮助您。请参阅[MCVE(最小,完整和可验证的示例)](http://stackoverflow.com/help/mcve) – mklement0
,并考虑编辑您的Q以包括一小组样本输入数据和所需格式作为输出相同的输入)。这样做可以节省您的段落描述。祝你好运。 – shellter