连接文件并在文件间插入新行
- 2024-11-06 08:35:00
- admin 原创
- 31
问题描述:
我有多个文件需要连接cat
。假设
File1.txt
foo
File2.txt
bar
File3.txt
qux
我想要连接以便最终的文件看起来像:
foo
bar
qux
而不是像往常一样cat File*.txt > finalfile.txt
foo
bar
qux
正确的做法是什么?
解决方案 1:
您可以执行以下操作:
for f in *.txt; do (cat "${f}"; echo) >> finalfile.txt; done
finalfile.txt
在运行上述命令之前,请确保该文件不存在。
如果您被允许使用,awk
您可以执行以下操作:
awk 'FNR==1{print ""}1' *.txt > finalfile.txt
解决方案 2:
如果您有足够多的文件可以列出每一个,那么您可以在 Bash 中使用进程替换,在每对文件之间插入一个换行符:
cat File1.txt <(echo) File2.txt <(echo) File3.txt > finalfile.txt
解决方案 3:
如果是我做的话我会使用 sed:
sed -e '$s/$/
/' -s *.txt > finalfile.txt
在这个 sed 模式中,$ 有两个含义,首先它只匹配最后一个行号(作为应用模式的行范围),其次它匹配替换模式中的行的末尾。
如果你的 sed 版本没有-s
(单独处理输入文件),你可以将其作为循环完成:
for f in *.txt ; do sed -e '$s/$/
/' $f ; done > finalfile.txt
解决方案 4:
这在 Bash 中有效:
for f in *.txt; do cat $f; echo; done
与使用 (append) 的答案相反>>
,此命令的输出可以通过管道传输到其他程序中。
例子:
for f in File*.txt; do cat $f; echo; done > finalfile.txt
(for ... done) > finalfile.txt
(括号可选)for ... done | less
(通过管道传输至 less)for ... done | head -n -1
(这将删除末尾的空白行)
解决方案 5:
如果你愿意,你可以使用它来做到这一点xargs
,但主要思想仍然是一样的:
find *.txt | xargs -I{} sh -c "cat {}; echo ''" > finalfile.txt
解决方案 6:
这就是我在 OsX 10.10.3 上所做的
for f in *.txt; do (cat $f; echo '') >> fullData.txt; done
因为没有参数的简单“echo”命令最终没有插入新行。
解决方案 7:
您可以使用grep
, 来-h
不回显文件名
grep -h "" File*.txt
将会给予:
foo
bar
qux
解决方案 8:
在 python 中,这将连接文件之间的空行(,
抑制添加额外的尾随空行):
print '
'.join(open(f).read() for f in filenames),
这是一个丑陋的 Python 单行程序,可以从 shell 中调用并将输出打印到文件中:
python -c "from sys import argv; print '
'.join(open(f).read() for f in argv[1:])," File*.txt > finalfile.txt
解决方案 9:
一个与 POSIX 兼容的解决方案是使用 cat,但将每个文件插入一个仅包含空行的文件。
nl=`mktemp`
printf '
' > $nl
cat file1 $nl file2 $nl file3
rm $nl
更花哨的版本可能是某种线条。
nl=`mktemp`
printf '
' > $nl
find file1 file2 file3 -print0 |
xargs -0 printf "%s $nl " |
tr ' ' '
' |
sed -n '$!p;$q' |
tr '
' ' ' |
xargs -0 cat
rm $nl
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件