Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
Bash SED:打开/读取目录中的文件_Bash_Unix_Sed - Fatal编程技术网

Bash SED:打开/读取目录中的文件

Bash SED:打开/读取目录中的文件,bash,unix,sed,Bash,Unix,Sed,我有一个包含如下文件的目录: one.xml two.xml three.xml 等等 我想打开/读取所有文件,并将一些值保存到新文件(例如new.txt) new.txt中的结果应该是(第一行的文件名/值): 等等。您可以使用head获取第一行。以下方面应起作用: for i in *.xml; do echo -n "$(basename "$i" ".xml") "; head -1 "$i" ; done >> new.txt 您可以使用head获取第一行。以下方面应起作

我有一个包含如下文件的目录:

one.xml
two.xml
three.xml
等等

我想打开/读取所有文件,并将一些值保存到新文件(例如
new.txt

new.txt
中的结果应该是(第一行的文件名/值):


等等。

您可以使用
head
获取第一行。以下方面应起作用:

for i in *.xml; do echo -n "$(basename "$i" ".xml") "; head -1 "$i" ; done >> new.txt

您可以使用
head
获取第一行。以下方面应起作用:

for i in *.xml; do echo -n "$(basename "$i" ".xml") "; head -1 "$i" ; done >> new.txt

在find的帮助下,sed可以很好地做到这一点:

find . -maxdepth 1 -type f -name "*.xml" -exec sed -n 1p "{}" ";"
(YMMV关于引用exec的参数)


它的作用是使用
1p
打印每个文件的第一行,并将其与
-n
相结合,后者会抑制正常输出,在这种情况下,这将是打印文件的每一行。

sed可以很好地完成这项工作,只需使用find:

find . -maxdepth 1 -type f -name "*.xml" -exec sed -n 1p "{}" ";"
(YMMV关于引用exec的参数)


它的作用是使用
1p
打印每个文件的第一行,并将其与
-n
相结合,后者会抑制正常输出,在这种情况下,这将是打印文件的每一行。

只需编写一个小程序(perl、python、java)<代码>sed在这里有点放错地方,我想。只需编写一个小程序(perl、python、java)<我认为code>sed在这里有点放错地方了。我认为您应该删除
for
参数的双引号,使其工作。否则,它将所有文件作为一个参数处理,并且
basename
失败。
head-1
/
tail-1
不推荐使用,建议使用
-n1
echo-n
也不可移植,只需使用
printf
。别忘了引用
$i
,以防万一。@Birei谢谢,修正了。它几乎是正确的。文件扩展名仍为空there@saromba请参见编辑。添加了
basename
的后缀。我认为您应该删除
for
参数的双引号以使其工作。否则,它将所有文件作为一个参数处理,并且
basename
失败。
head-1
/
tail-1
不推荐使用,建议使用
-n1
echo-n
也不可移植,只需使用
printf
。别忘了引用
$i
,以防万一。@Birei谢谢,修正了。它几乎是正确的。文件扩展名仍为空there@saromba请参见编辑。添加了
basename
的后缀。