我有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
在BASH中反转多列文件的sorting顺序
如何在一行或多行中查找具有相同值的行,并使用awk添加值
如何使用AWK从string中删除所有小写字符?
file_name1 2 file_name2 3
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中删除空格
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'
注:也许你将不得不摆脱正常的括号后面的空格,使其工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。