[英]awk processing files with different extensions
我必須在一個awk腳本中處理多個CSV
和TXT
文件。 我在Windows上的cmd文件如下所示: gawk -f script.awk *.csv *.txt > output.file
我想使用此cmd文件,因為我不想總是在命令提示符下鍵入命令運行腳本。 我想對不同的文件類型執行不同的任務。 我在腳本文件中嘗試了一些東西,例如if (match(FILENAME, ".csv")) && (FNR > 1)
但是它們都沒有起作用。 我大約有4-5個CSV
文件和很多(例如1000多個) TXT
文件,這些都是輸入文件。 CSV
文件的內容全部在同一架構中,引號之間是一列。 例:
"Player"
"adigabor"
我想在處理它們時忽略所有輸入CSV
文件的第一行,並將不帶引號的每條記錄添加到數組中,然后我想處理TXT
文件,我可以做的很好,我的問題是我無法在一個腳本中執行具有不同輸入文件擴展名的不同任務。
如果您以什么方式告訴我們“他們都沒有工作”,那將非常有用,因此我們不僅在猜測,而且無論如何都可以:
match(FILENAME, ".csv")
的主要問題是它將匹配csv
,並在文件名中的任何字符之前加上任何char。 要獲取以.csv
結尾的文件,您需要:
match(FILENAME,/\.csv$/)
但您無需為此調用函數:
FILENAME ~ /\.csv$/
因此,您的腳本應如下所示:
FILENAME ~ /\.csv$/ {
if ( FNR > 1 ) {
do CSV stuff
}
next
}
{
do TXT stuff
}
如果您仍然無法做任何事情,請編輯問題以包括示例輸入文件(每個小.csv和.txt文件中的至少一個)和預期輸出,以及對嘗試內容的更好解釋去做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.