我想替換第一行中存在的字符串,儘管它也存在於文件的其餘行中。我怎樣才能通過shell腳本來做到這一點?有人可以幫我解決這個問題。我的代碼如下。我從文件中提取第一行,然後我不知道如何進行替換。任何幫助,將不勝感激。謝謝。替換UNIX文件中的第一行上存在的字符串
夥計們 - 我想替換$ line中的字符串,並將新行寫入同一個文件中的相同位置。
代碼:
while read line
do
if [[ $v_counter == 0 ]] then
echo "$line"
v_counter=$(($v_counter + 1));
fi
done < "$v_Full_File_Nm"
樣本數據:
輸入
BUXT_CMPID|MEDICAL_RECORD_NUM|FACILITY_ID|PATIENT_LAST_NAME|PATIENT_FIRST_NAME|HOME_ADDRESS_LINE_1|HOME_ADDRESS_LINE_2|HOME_CITY|HOME_STATE|HOME_ZIP|MOSAIC_CODE|MOSAIC_DESC|DRIVE_TIME| buxt_pt_apnd_20140624_head_5records.txt
100106086|5000120878|7141|HARRIS|NEDRA|6246 PARALLEL PKWY||KANSAS CITY|KS|66102|S71|Tough Times|2|buxt_pt_apnd_20140624_head_5records.txt
輸出
BUXT_CMPID|MEDICAL_RECORD_NUM|FACILITY_ID|PATIENT_LAST_NAME|PATIENT_FIRST_NAME|HOME_ADDRESS_LINE_1|HOME_ADDRESS_LINE_2|HOME_CITY|HOME_STATE|HOME_ZIP|MOSAIC_CODE|MOSAIC_DESC|DRIVE_TIME| SRC_FILE_NM
100106086|5000120878|7141|HARRIS|NEDRA|6246 PARALLEL PKWY||KANSAS CITY|KS|66102|S71|Tough Times|2|buxt_pt_apnd_20140624_head_5records.txt
從上述採樣數據我需要更換buxt_pt_apnd_20140624_head_5records.txt與SRC_FILE_NAME字符串。
UNIX shell是從中調用工具的環境。用於處理文本文件的UNIX工具是awk。所以,編寫一個awk腳本並從shell中調用它。 –
您發佈的示例數據僅包含1行,但它在您的文本中聽起來像是對於在後續行中不替換字符串的解決方案非常重要,因此您應該發佈一些示例輸入/輸出以顯示您的需求方面。同樣 - 如果目標字符串在第一行出現多次,該怎麼辦?如果它是另一個字符串的一部分呢? –