爲了方便和快速調試我的R
代碼,我決定創建一個小巧的AWK
腳本。它所要做的就是在特定目錄中解碼所有base64編碼的文件名(.RData
)。我已經嘗試了兩次嘗試。以下是我迄今爲止的結果。任何幫助將不勝感激!微小公用事業解碼base64編碼文件名
第一次嘗試是AWK
腳本在shell
命令嵌入:
ls -1 ../cache/SourceForge | awk 'BEGIN {FS="."; print ""} {printf("%s", $1); printf("%s", " -> "); print $1 | "base64 -d -"; print ""} END {print ""}'
的得到的輸出是靠近到所需要的,但是,代替打印每個解碼的文件名在與原始編碼一行的同一行上,這一行代碼在處理結束時打印所有解碼的名稱,根本沒有輸出分隔符:
cHJqTGljZW5zZQ== ->
cHViUm9hZG1hcA== ->
dG90YWxEZXZz ->
dG90YWxQcm9qZWN0cw== ->
QWxsUHJvamVjdHM= ->
Y29udHJpYlBlb3BsZQ== ->
Y29udHJpYlByb2Nlc3M= ->
ZG1Qcm9jZXNz ->
ZGV2TGlua3M= ->
ZGV2U3VwcG9ydA== ->
prjLicensepubRoadmaptotalDevstotalProjectsAllProjectscontribPeoplecontribProcessdmProcessdevLinksdevSupport
第二次嘗試如下自足AWK
腳本:
#!/usr/bin/gawk -f
BEGIN {FS="."; print ""; files = "ls -1 ../cache/SourceForge"}
{
decode = "base64 -d -";
printf("%s", $1); printf("%s", " -> "); print $1 | decode; print ""
}
END {print ""}
然而,這個腳本的行爲是在奇怪,首先,它等待輸入,並其次,在收到EOF
(Ctrl-D
)後,不會產生任何輸出。
我不在乎我的評價,但只是好奇爲什麼downvote。謹慎解釋? –
這不是我,但我不得不想知道爲什麼你不只是問「這個print'foo bar 8'。爲什麼它不是'foo 4 bar 4'?'printf」foo \ nbar \ n「| awk'{print $ 1; print $ 1 |「wc -c」;}''「 –
@thatotherguy:感謝您的評論!雖然有些人更喜歡簡潔,但其他人更喜歡理解上下文,而上下文通常包含基本的細節,因此非常重要。我相信每個人都是獨一無二的,因此,她有自己的提問,呈現信息等方式。我不認爲個人做事風格應該看作是價值較低。 –