Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 将以.log结尾的文件附加到不带.log的txt文件_Linux_Shell_Command Line - Fatal编程技术网

Linux 将以.log结尾的文件附加到不带.log的txt文件

Linux 将以.log结尾的文件附加到不带.log的txt文件,linux,shell,command-line,Linux,Shell,Command Line,假设我有一堆文件: blar23123.log blar23131.log blar11111.txt blar55532.log 我想将所有以.log结尾的文件输出到一个文本文件中,而不输出.log 预期输出(文本文件): blar23123 blar23131 blar55532 for file in *.log; do cp -- "$file" "${file%%.log}"; done 我有一个非常糟糕的方法来做这件事,我创建了一个新的文件,一个没有.log的独立文件。但

假设我有一堆文件:

blar23123.log
blar23131.log
blar11111.txt
blar55532.log
我想将所有以.log结尾的文件输出到一个文本文件中,而不输出.log

预期输出(文本文件):

 blar23123
 blar23131
 blar55532
for file in *.log; do cp -- "$file" "${file%%.log}"; done
我有一个非常糟糕的方法来做这件事,我创建了一个新的文件,一个没有.log的独立文件。但是,由于我正在处理100000个文件的数据集,这可能是一项详尽的工作,需要一段时间

我一直在做的事情:

 blar23123
 blar23131
 blar55532
for file in *.log; do cp -- "$file" "${file%%.log}"; done
然后我一直在列出它们,然后将它们附加到一个txt文件中,我想你想要:

for file in *.log ; do
    echo "${file%.*}"
done > output.txt

${file%.*}
就是所谓的。在这种情况下,它将从
$file
的末尾删除点的最短匹配,后跟任意字符。这将有效地删除文件扩展名。

只向txt文件输出一个。您重定向了每个
echo的输出。我建议为
循环重定向
的输出,这样效率更高。(仔细检查代码)