我有一个包含如下文件的目录:
one.xml
two.xml
three.xml
等等
我想打开/读取所有文件并将一些值保存到新文件(例如new.txt
)
结果new.txt
应该是(第一行的文件名/值):
one value of first line
two value of first line
three value of first line
等等
您可以使用head
. 以下应该有效:
for i in *.xml; do echo -n "$(basename "$i" ".xml") "; head -1 "$i" ; done >> new.txt
sed 可以很好地做到这一点,在 find 的帮助下:
find . -maxdepth 1 -type f -name "*.xml" -exec sed -n 1p "{}" ";"
(YMMV 关于引用 exec 的参数)。
这是1p
用来打印每个文件的第一行,并结合-n
抑制正常输出的内容,在这种情况下,将打印文件的每一行。