如何在每行之前打印文件内容和文件名?

发布于 2024-11-07 19:01:34 字数 512 浏览 0 评论 0原文

我有几个文件,比如说,a,b,c,我想要类似的东西

 > cat a b c

,但在 a 的开头行中带有“a”。 “b”位于 b 行的开头,“c”位于 c 行的开头。 我可以使用 python 来执行此操作:

#!/bin/env python

files = 'a b c'

all_lines = []
for f in files.split():
  lines = open(f, 'r').readlines()
  for line in lines:
    all_lines.append(f + ',' + line.strip())

fout = open('out.csv', 'w')
fout.write('\n'.join(all_lines))
fout.close()

但我更喜欢在命令行中执行此操作,将一些简单的命令与管道 | 结合起来。操作员。

有没有一种简单的方法可以实现这一点?

谢谢。

I have several files, say, a,b,c, I would like to something like

 > cat a b c

but with "a," in the beginning lines of a. "b," in the beginning of the lines of b and "c," in the beginning of the lines of c.
I can do this using python:

#!/bin/env python

files = 'a b c'

all_lines = []
for f in files.split():
  lines = open(f, 'r').readlines()
  for line in lines:
    all_lines.append(f + ',' + line.strip())

fout = open('out.csv', 'w')
fout.write('\n'.join(all_lines))
fout.close()

but I would prefer to do it in the command line, combining some simple commands with the pipe | operator.

Is there a easy way of accomplishing this?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

多彩岁月 2024-11-14 19:01:34
perl -pe 'print "$ARGV,"' a b c

会做的。

perl -pe 'print "$ARGV,"' a b c

will do it.

南渊 2024-11-14 19:01:34

grep(1)sed(1) 可以为您执行此操作:grep -H ''; | sed 's/:/,/':

$ cat a ; cat b ; cat c
hello


world
from space
$ grep -H '' * | sed 's/:/,/'
a,hello
b,
b,
b,world
c,from space

grep(1) and sed(1)can do this for you: grep -H '' <files> | sed 's/:/,/':

$ cat a ; cat b ; cat c
hello


world
from space
$ grep -H '' * | sed 's/:/,/'
a,hello
b,
b,
b,world
c,from space
兰花执着 2024-11-14 19:01:34

您还可以使用 awk(1) 程序:)

$ awk 'BEGIN { OFS=","; } {print FILENAME , $0;}' *
a,hello
b,
b,
b,world
c,from space
d,,flubber

You can also use the awk(1) program :)

$ awk 'BEGIN { OFS=","; } {print FILENAME , $0;}' *
a,hello
b,
b,
b,world
c,from space
d,,flubber
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文