簡體   English   中英

將文件名添加到粘貼文本上方的Shell腳本中的附加文本文件中

[英]Add filename to appended text file in shell script above pasted text

在腳本上工作(Mac OSX Yosemite,在終端上工作),在這里我分析了許多文件,並想在一個文本文件中添加腳本的輸出。

gawk -f ./user/filter.dat ./user/outputpre1.out >> ./user/outputpost.out
gawk -f ./user/filter.dat ./user/outputpre2.out >> ./user/outputpost.out

對於解釋來說,找到輸出的來源非常有用。 我現在的輸出都是行,就像這樣:

ROW1:OUTPUTOUTPUT
ROW2:OUTPUTOUTPUT
ROW8:OUTPUTOUTPUT
ROW10:OUTPUTOUTPUT

我想要的是:

**Output from file outputpre1.out
ROW1:OUTPUTOUTPUT
ROW2:OUTPUTOUTPUT

**Output from file outputpre2.out
ROW8:OUTPUTOUTPUT
ROW10:OUTPUTOUTPUT

通過gawk可以做到嗎?

您沒有顯示filter.dat腳本,但是gawk確實知道當前輸入文件的名稱,可以將其合並到腳本的邏輯中(請參閱手冊 ):

文檔名稱

當前輸入文件的名稱。 如果在命令行上未指定文件,則FILENAME的值為“-”。 但是, FILENAMEBEGIN塊內是未定義的(除非由getline設置)。

如何合並取決於filter.dat的組織方式。 該腳本必須設置一個變量(將在重復使用后進行測試),以確保它僅打印一次文件名。 像這樣的片段:

BEGIN {
    first = 1
}
... (just before printing rows)
if (first == 1) {
    printf "\n**Output from file %s\n", FILENAME;
    first = 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM