我在寫一個bash/awk腳本來處理一個目錄下的數百個文件。他們都有「本地偏好」的名稱後綴。目的是從每個文件中提取兩個值(它們由「」引用)。我也想使用相同的文件名,但沒有名稱後綴。將awk變量傳遞給bash腳本
這裏是我做過什麼至今:
#!/bin/bash
for file in * # Traverse all the files in current directory.
read -r name < <(awk ' $name=substr(FILENAME,1,length(FILENAME)-10a) END {print name}' $file) #get the file name without suffix and pass to bash. PROBLEM TO SOLVE!
echo $name # verify if passing works.
do
awk 'BEGIN { FS = "\""} {print $2}' $file #this one works fine to extract two values I want.
done
exit 0
我可以用
的awk '{打印SUBSTR(文件名,1,長度(文件名)-10)}' 提取文件名沒有後綴,但我堅持如何將bash作爲一個變量傳遞給我將用作輸出文件名(我在這裏閱讀了關於這個主題的所有帖子,但也許我是啞巴,但沒有一個適用於我)。
如果任何人都可以對此有所瞭解,特別是以「閱讀」開頭的行,你真的很感激。
非常感謝。
它的作品像魅力。非常感謝!我將用你的模板來表示輸出。 – user46292
#!/ bin/bash dir =「/ path/to/dir」 diro =「/ path/to/dirout」 for「$ dir」/ * localprefs;做 name = $ {file%localprefs} ##或者如果它有一個。:name = $ {file%.localprefs} name = $ {name ## * /}; ##排除目錄部分。 觸摸 「$ DIRO」/ 「$名」 的awk 'BEGIN {FS = 「\」「} {打印$ 2}' 」$文件「 >> 」$ DIRO「/ 」$名「 做 退出0 – user46292
如何編寫for循環來獲取名稱並創建文件,然後運行awk部分將兩行代碼放入文件中?請參閱上文。它非常接近,但在輸出文件中有兩個副本 – user46292