我有10个文件。每个文件包含多行,但我对2个特定行感兴趣。
让我们说2行的格式为:
test1_hello
test2_world
第二个文件包含:
test1_hallo
test2_germany
我想要做的是recursivley运行文件并解压缩 从每个文件到一个主文件的相关字符串。
所以final_file的最终结果内容是:
helloworld
hallogermany
这可以在Bash的一行命令中使用吗?
答案 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