我正在寫一個腳本來處理入站數據文件。入站文件名都遵循相同的模式: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