簡體   English   中英

查找文件並以特定格式顯示結果到txt文件

[英]Find files and display results in an specific format to txt file

我目前在多個目錄中有許多文本文件,這些目錄將結果排序並存儲在文本文件中。 問題不是排序部分,而是格式化放置在文本文件中的輸出的格式。 我正在尋找以這種格式輸出的file '/path/to/file1'當前顯示的是/path/to/file1 我想在一個進程中完成所有操作(不必運行其他循環或更改格式即可)。

$ target=~/tmp/shuf
$ destination=/filepath/
$ find $target -iname "*.txt" -type f | shuf | awk -F- '{printf("%s:%s\n", $0, $NF)}' | sort -t : -k 2 -s | cut -d : -f 1 | xargs -n1 basename | sed "s,^,$destination," > $destination/results.txt

當前results.txt:

/path/to/cs650-software_methodologies-fname_lname-001.txt
/path/to/s630-linux_research_paper-fname_lname-001.txt

所需的result.txt:

file '/path/to/cs650-software_methodologies-fname_lname-001.txt'
file '/path/to/s630-linux_research_paper-fname_lname-001.txt'

我發現,如果沒有替代項, awk通常更容易進行這種格式化。 這也使我們可以跳過基名調用,並將該部分也留給awk 請注意,如果您的實際文件名中有任何正斜杠,則此操作將無效。

find $target -type f -iname "*.txt" \
 | shuf \
 | awk -F- '{printf("%s:%s\n", $0, $NF)}' \
 | sort -t : -k 2 -s \
 | cut -d : -f 1 \
 | awk -F / '{printf("file '\''%s'\''\n", $0)}' \
 > $destination/results.txt

暫無
暫無

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

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