我有2个文件file_A和file_B。 文件file_A包含文件名,然后在空格之后代码行。 这个代码行可以有任意types的字符说blanks,:等等。它看起来像这样。 请注意,文件中的代码行没有被()包围。 这只是为了说明的目的。
bash $ cat file_A
file_name1 (code line a) file_name1 (code line b) file_name2 (code line c) file_name2 (code line d) file_name2 (code line e)
文件file_B在file_A中包含file_name和频率
bash $ cat file_B
在shell中按名称sorting目录内容(包括隐藏文件)
在BASH中反转多列文件的sorting顺序
如何在一行或多行中查找具有相同值的行,并使用awk添加值
为什么我的工具输出覆盖本身,如何解决?
如何使用AWK从string中删除所有小写字符?
file_name1 2 file_name2 3
我想输出为:(频率,文件名,code_line)
2 file_name1 (code line a) 2 file_name1 (code line b) 3 file_name2 (code line c) 3 file_name2 (code line d) 3 file_name2 (code line e)
bash $ join -1 1 -2 1 file_B file_A> file_C
我得到file_C为(我得到连接字段作为第一个字段)
file_name1 2 (code line a) file_name1 2 (code line b) file_name2 3 (code line c) file_name2 3 (code line d) file_name2 3 (code line e)
我如何获得第一场的频率场?
我知道,通过连接,我可以使用-o格式并在输出中提及我想要的字段和顺序。 但是我怎么说,把所有的代码行(可以包含任何东西,所以没有这样的分隔符)如此
谢谢,
Unix Awk数组不打印值
将每N行input放入一个新列
从文本文件中删除奇数行或偶数行
AWK中删除空格
Shell命令从文本文件中去除^ M个字符
join file_B file_A | awk '{t=$1; $1=$2; $2=t; print}' > file_C
注意join不支持在输出格式中指定一个范围的字段,所以下面的内容有点儿怪异,但是在“代码行”中最多支持8个空格,
join -o 1.2,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9 file_B file_A
sed 's#([^ ]*) ([^ ]*) (.*)#$2 $1 $3#g'
注:也许你将不得不摆脱正常的括号后面的空格,使其工作。
总结以上是内存溢出为你收集整理的在linux中如何join2个文件全部内容,希望文章能够帮你解决在linux中如何join2个文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)