我試圖用多行代替一個字符串。現在已經很晚了,我正在變得焦躁不安,也許有人會更願意爲某些SO點而投籃。我替換字符串 '存儲爲TEXTFILE' 從下面的SQL ...sed替換一組文件字符串
PARTITIONED BY(load string, date string, source_file string)
STORED AS TEXTFILE
LOCATION '${staging_directory}/${tablename}';
,並使其看起來像......
PARTITIONED BY(load string, date string, source_file string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '${staging_directory}/${tablename}';
所以我的表達是
:%s/)\nSTORED AS TEXTFILE\nLOCATION '/)\rROW FORMAT DELIMITED \rFIELDS TERMINATED BY ',' \rSTORED AS TEXTFILE \rLOCATION '/g
它在文件內工作(使用vim),但我無法讓它在目錄中的所有文件上使用一個命令。我已經嘗試到目前爲止......
sed -i "s/)\nSTORED AS TEXTFILE\nLOCATION '/)\rROW FORMAT DELIMITED \rFIELDS TERMINATED BY ',' \rSTORED AS TEXTFILE \rLOCATION '/g"
...我也嘗試了上述語句,所有的空格都逃脫了。請幫忙!由線下面的鏈接
這不適合我,我收到了一條使用信息。 –
什麼*使用信息*? – RomanPerekhrest
用法:gawk [POSIX或GNU風格選項] -f progfile [ - ]文件... 用法:gawk [POSIX或GNU風格選項] [ - ]'程序'文件... POSIX選項:GNU long選項: -f progfile --file = progfile -F fs --field-separator = fs -v var = val --assign = var = val –