你好我想這個源文件轉換:轉換一個文件到另一個
源--------
[ODBC Data Sources]
C334_DEV_MD=Micro ODBC Driver for SQL Server Wire Protocol
C334_PRD_ST=Micro ODBC Driver for SQL Server Wire Protocol
[ODBC]
Trace=0
TraceFile=odbctrace.out
TraceDll=/home/mstr/Micro/install/lib32/MYtrcXX.so
InstallDir=/home/mstr/Micro/install
IANAAppCodePage=106
UseCursorLib=0
[C334_DEV_MD]
HostName=C334WM01NA02
PortNumber=1433
Database=C334_DEV_MD
DoubleToStringPrecision=17
[C334_PRD_ST]
HostName=C334WM01NA02
PortNumber=1433
Database=C334_PRD_ST
DoubleToStringPrecision=17
源----------
用腳本將此文件導入到此文件中。
目的地--------
C334_DEV_MD=Driver description|HostName=C334WM01NA02;PortNumber=1433;Database=C334_DEV_MD;DoubleToStringPrecision=17|na01liwp01c334
C334_PRD_ST=Driver description|HostName=C334WM01NA02;PortNumber=1433;Database=C334_PRD_ST;DoubleToStringPrecision=17|na01liwp01c334
目的地---------
ODBC條目在這裏並不重要。
這是輸出應遵循的模式。
DSN_entry=Driver Description|Parameter1=value;Parameter2=value;Parameter3=value|Server_Name
Servername可以從源文件的文件名獲取。
這是我到目前爲止所做的,但我卡住了。
#!/bin/bash
flag=0
sourcefile=$1
destfile=$2
sed -n '2,/^$/p' $sourcefile | awk -F"=" '{print$1}' | sed '$d' | \
while read line; do
#echo $line
grep -E ''"^${line}"'|'"^\[${line}"'' $sourcefile
done
它不會爲我生成任何輸出。我將你的代碼保存在translate.awk文件中並運行awk -f translate.awk input.file。沒有輸出。 – fuzzy186 2015-03-31 13:15:12
嗯。我已經用問題中顯示的數據對它進行了測試。你能發佈你確切的輸入數據嗎? (你使用Linux,意思是'gawk'?) – hek2mgl 2015-03-31 13:19:17
這是我的輸入數據。 – fuzzy186 2015-03-31 13:28:17