Questions tagged «columns»

当描述表或矩阵或垂直对齐的任何其他结构化数据集中的特定条目组的特定部分时,请使用此标记。

2
合并两个单独文件中的列
如何使用awk创建一个合并两个单独文件中的选择性列的新文件?无需弄乱两个文件的元素顺序。 示例:文件3可能包含文件1中的1,2,3列和文件2中的4列。 File 1 A 23 8 T A 63 9 9 B 45 3 J File 2 A 0 A 6 B 5 File 3 A 23 8 0 A 63 9 6 B 45 3 5

5
连接具有唯一标识符的两个文件
我要加入两个文件,分别有大约12900和4400个条目。这些文件包含全球所有陆基气象观测站的位置信息。最大的文件每两周更新一次,较小的文件大约一年一次。原始文件可以在这里找到(http://www.wmo.int/pages/prog/www/ois/volume-a/vola-home.htm和 http://weather.rap.ucar.edu/surface/ station.txt)。我已经使用一些混合的awk,sed和bash脚本来操纵我的文件。我使用GEMPAK软件包使用这些文件来可视化数据,该软件包可从Unidata免费获得。最大的文件将与GEMPAK一起使用,但不能完全发挥作用。为此,需要一个联接。 文件1包含气象站的位置信息,其中前6位数字是唯一的站标识符。不同的参数(站号,站名,国家/地区代码,纬度和站高)仅由其在行中的位置定义,即没有制表符。 060090 AKRABERG FYR DN 6138 -666 101 060100 VAGA FLOGHAVN DN 6205 -728 88 060110 TORSHAVN DN 6201 -675 55 060120 KIRKJA DN 6231 -631 55 060130 KLAKSVIK HELIPORT DN 6221 -656 75 060160 HORNS REV A DN 5550 786 21 060170 HORNS REV B DN …

5
哪些命令将输入​​制表符分隔的文本文件,并将每行削减为80个字符?
我有(有时)制表符分隔的数据的多行文本文件。我想输出文件,以便我可以浏览它-所以我只希望看到每行的前80个字符(我设计了文本文件,将重要内容放在每行的第一位)。 我以为我可以用cat读取文件的每一行,并将每一行发送到管道中的下一个命令: cat tabfile | cut -c -80 但这似乎是坏事。我试着胡闹,grep似乎可以工作-但后来我发现,不行(不是文件中的每一行都包含80多个字符)-看来,制表符被切为单个字符。 我试过了: cat tabfile | tr \t \040 | cut -c -80 通过消除空白可读性,即使那样会使我的数据有些混乱。但这没有用。都没有: cat tabfile | tr \011 \040 | cut -c -80 也许我使用的tr错误?我以前在tr上遇到过麻烦,想删除多个空格(似乎我在这台机器上可以访问的tr的版本有一个-s选项,用于压缩多个字符-我可能需要更多地使用它) 我确定如果弄乱了我可以使用perl,awk或sed或其他方法来执行此操作。 但是,我想要一个使用(POSIX?)常规命令的解决方案,以使其尽可能地可移植。如果最终使用tr,则可能最终会尝试将制表符转换为字符,也许要进行计算,削减计算量,然后将这些字符转换回制表符以进行输出。 它不必是一行,也不需要直接在命令行中输入-脚本就可以了。 关于选项卡文件的更多信息: 我使用制表符来中断字段,因为有一天我可能想将数据导入其他程序。所以我倾向于在内容之间只有一个选项卡。但是我也使用制表符将内容与垂直列对齐,以帮助查看纯文本文件时提高可读性。这意味着对于某些文本,我会在内容的末尾用空格填充,直到到达选项卡将使下一个字段与上下两个字段对齐的位置为止。 DarkTurquoise#00CED1海洋,天空,划艇自然 MediumSpringGreen#00FA9A对树魔术有用 青柠#00FF00仅用于春鸡和果肉

3
sed输出如何像printf的格式化打印一样格式化?
sed可以用类似于printf的格式化打印格式的字符串替换文本吗? 以下sed命令用变量中指定的多个值替换以“ $ domain”的当前值开头的行。 /bin/sed "s/\(^${domain} *${limittype} * ${limititem}.*\)/$EXPL#\1\n${domain} ${limittype} ${limititem} ${value}/" /etc/security/limits.conf 但是,由于domain等的值的长度不同,因此无法正确对齐输出。 因此输出将类似于 #oracle hard nproc 131072 oracle hard nproc 666 虽然有效,但很难阅读。我宁愿得到像 #oracle hard nproc 131072 oracle hard nproc 666 我可以拿到的最好的输出是: /bin/sed "s/\(^${domain}\)\( *\)\(${limittype}\)\( *\)\(${limititem}\)\( *\)\(.*\)/$EXPL#\1\2\3\4\5\6\7\n${domain}\2${limittype}\4${limititem}\6${value}/" /etc/security/limits.conf 但是我相信必须有一种更优雅的方法来做到这一点。 所述sed的一个衬里文件包含一些实例中使用指定数目的字符,例如 sed -e :a -e 's/^.\{1,78\}$/ &/;ta' # set at …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.