unix从文件和组合中提取行

时间:2015-10-18 19:26:17

标签: bash unix recursion line extract

我有10个文件。每个文件包含多行,但我对2个特定行感兴趣。

让我们说2行的格式为:

test1_hello
test2_world

第二个文件包含:

test1_hallo
test2_germany 

我想要做的是recursivley运行文件并解压缩 从每个文件到一个主文件的相关字符串。

所以final_file的最终结果内容是:

helloworld
hallogermany 

这可以在Bash的一行命令中使用吗?

2 个答案:

答案 0 :(得分:1)

这可能与您正在寻找的内容相近:

for f in * ; do sed 's#[^_]*_##' $f | tr -d '\n' ; echo ; done

sed会删除第一个_之前的部分(包括那个_ s 将空的正则表达式[^_]*_删空字符串,tr将删除换行符(\n)。举个例子:

$ cat f1
test1_hello
test2_world
$ cat f2
test1_hallo
test2_germany
$ for f in * ; do sed 's#[^_]*_##' $f | tr -d '\n' ; echo ; done
helloworld
hallogermany

答案 1 :(得分:0)

for file in $(ls -1); do grep ^test* $file | awk -F'_' '{print $2}' >> myfile;done