gpt4 book ai didi

linux - 查找文件并以特定格式显示结果到txt文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:31 25 4
gpt4 key购买 nike

我目前在几个目录中有许多文本文件,我正在对这些文件进行排序并将结果存储在文本文件中。问题不在于排序部分,而是格式化放置在文本文件中的输出。我希望以这种格式输出 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

当前结果.txt:

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

期望的结果.txt:

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

最佳答案

我发现 awk 对于这种格式通常更容易,如果你没有替换的话。这也允许我们跳过 basename 调用并将该部分留给 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

关于linux - 查找文件并以特定格式显示结果到txt文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26455543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com