首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Leetcode No.194 转置文件(xargs)

一、题目描述 给定一个文件 file.txt,转置它的内容。 你可以假设每行列数相同,并且每个字段由 ' ' 分隔。...列,每行列数相同,字段由 ' ' 分隔,需要将第一列转为第一行,第二列转为第二行。...xargs 多行变单行 很容易就想到了 xargs 这个命令,可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。...输出和结果有差异,接下来想办法依次取到每一列然后执行 xargs 输出。如何取到第一列的数据呢?...head + wc 获取列数 通过 head -n 命令可以获取文件指定行数的内容,再使用 wc -w 即可获取当前行的所有列数。由于本题每行列数相同,因此我们取第一行即可。

95520

linux实战(一)

替换s命令 $ sed 's/test/mytest/g' example 在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。...选定行的范围逗号 $ sed -n '/test/,/check/p' example 所有在模板test和check所确定的范围内的行都被打印。...OFS 输出字段分隔符(默认值是一个空格)。 ORS 输出记录分隔符(默认值是一个换行符)。 RLENGTH 由match函数所匹配的字符串的长度。 RS 记录分隔符(默认是一个换行符)。...RSTART 由match函数所匹配的字符串的第一个位置。 SUBSEP 数组下标分隔符(默认值是\034)。...{print $1}输出第一列 显示多行 显示/etc/passwd的账户和账户对应的shell,显示时账户与shell之间以tab键分割 #cat /etc/passwd |awk -F ':'

2.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Power Query 真经 - 第 7 章 - 常用数据转换

    但是,如果用户想锁定一个特定的【仅逆透视选定列】的命令,从而使添加到数据集中的新列不会被 “逆透视” 呢?这正是【仅逆透视选定列】的作用。...作为一个规律,若某表的列会因为未来的业务扩展,而不断增加新列,如:财务科目或业务指标,则此列应该逆透视,以变保持固定的结构。...7.4.1 按特定值筛选 筛选特定值相对简单。只需单击该列列标题的下拉箭头,取消勾选不需要保留的项目,或取消勾选【全选】的复选框,勾选需要的项目。...它们的长度是一致的,而且还在筛选区显示可选择的值。但如果仔细观察,会发现搜索框上方的弹出菜单会根据列的数据类型来命名,并提供特定于该数据类型的筛选器。 如下所示。...默认情况下,Power Query 会通过计算表的行数对所选的字段进行计数。这不是用户需要的,所以需要把它改成按 “Date” 列和 “Sate” 列来计算总销售额和总销售数量。

    7.5K31

    MySQL括号字符串计数

    总的想法是,首先对评论字符串以“]”为分隔符转多行,然后针对不同情况对每行求字符长度,之后按每条评论ID分组求和,得到符合规则的每条评论的长度,最后按评论长度分组进行二次聚合,得到每种长度的个数。...9-11行中的子查询为每个带有“]”符号,并且最后一个字符不是“]”的评论尾部拼接一个“]”字符。...数字辅助表nums是只有一列ID的1、2、3......数列,关联它用笛卡尔积由原表的一行制造出多行。...8-11行中的子查询,得出每条评论中成对中括号的个数(l1列),0表示评论字符串中没有成对的中括号,结果如下: 图片 7-12行中的子查询,结果为使用以“]”为分隔符转的多行: 图片...2-13行中的子查询,针对不同情况对每行求字符长度。

    1.3K20

    Linux:sed命令详解

    3.1 sed 命令 命令 功                能 a\ 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行 c\ 用此符号后的新文本替换当前行中的文本。...多行时除最后一行外,每行末尾需用"\"续行 i\ 在当前行之前插入文本。...多行时除最后一行外,每行末尾需用"\"续行 d 删除行 h 把模式空间里的内容复制到暂存缓冲区 H 把模式空间里的内容追加到暂存缓冲区 g 把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容 G 把暂存缓冲区的内容追加到模式空间里...最多可以定义 9 个标签,从左边开始编号,最左边的是第一个。此例中,对第 1 到第 20 行进行处理,you 被保存为标签 1,如果发现 youself,则替换为 your。...sed 使用该命令将一个文本文件中的内容加到当前文件的特定位置上。

    7.1K60

    linux常用命令

    | uniq -u 2.4、cut cut命令可以从一个文本文件或者文本流中提取文本列 cut语法 cut -d'分隔字符' -f fields ## 用于有特定分隔字符 cut -c 字符区间...+ "ss" 此处切记:\1代表的是被第一个()包含的内容,\1代表的是被第一个()包含的内容,…… 上面命令的意思就是:被括号包含的字符串会保留下来,然后跟其他的字符串比如tao和ss组成新的字符串...可以用它来输出最后一个域 FS:设置输入域分隔符,等价于命令行-F选项 OFS:输出域分隔符 统计/etc/passwd:文件名,每行的行号,每行的列数,对应的完整行内容 awk -F ':' '{...),保留右边字符串,和上边一个#不同的是,它一直找到最后,而不是像一个#那样找到一个就满足条件退出了。...~]# echo ${WEBSITE%//*} 结果:http://hadoop 4、%%截取,删除右边字符串(包括指定的分隔符),保留左边字符串,和上边一个%不同的是,它一直找到最前,而不是像一个%

    2.2K10

    MySql字符串拆分实现split功能(字段分割转列、转行)

    字符串转多行 需求描述 实现的sql 案例演示 字符串拆分: SUBSTRING_INDEX(str, delim, count) 替换函数:replace( str, from_str,...扩展:判断外部值是否在 num列值中 find_in_set instr 字符串转多列 需求描述 数据库中 num字段值为: 实现的效果:需要将一行数据变成多行 实现的sql SELECT...help_topic 表: 注意,这个辅助表的ID最大长度只有658;如果过长的字符串,可能需要借助其他自增的辅助表(可以是现有表,也可以自己造一个 1,2,3,4 递增的行即可) 【4.2】...’,就会造成结果错误 可以在字符串两边都加上逗号,确保字符串能完全匹配 字符串转多列 SELECT -- 截取第一个逗号前边的数据,即为第一个字符串 substring_index( ids...( ',', substring_index( ids, ',', 2 ), 1 )+ 1 ) id2, -- 将第一个字符串和第二个字符串的长度+2(两个逗号),从这个位置开始截取即为第三个字符串 SUBSTR

    15.8K70

    最好用的 IntelliJ 插件 Top 10

    SQL Query Plugin 通过JDBC连接执行SQL语句的工具。它具有语法高亮、一次执行多个SQL语句,高亮显示主键和外键,直接编辑结果等功能。 ?...递增/递减: 递增/递减所有找到的数字 复制行并且递增/递减所有找到的数字 创建序列:保持第一个数字,递增替换所有其他数字 递增重复的数字 按自然顺序排序: 按行倒序 按行随机排序 区分大小写A-z排序...区分大小写z-A排序 不区分大小写A-Z排序 不区分大小写Z-A排序 按行长度排序 通过子选择行排序:每行仅处理一个选择/插入符号 对齐: 通过选定的分隔将选定的文本格式化为列/表格 将文本对齐为左/...中/右 过滤/删除/移除: grep选定的文本,所有行不匹配输入文字将被删除。...(不能在列模式下工作) 移除选定的文本 移除选定文本中的所有空格 删除选定文本中的所有空格 删除重复的行 只保留重复的行 删除空行 删除所有换行符 其他: 交换字符/选择/线/标记 切换文件路径分隔符:

    2.4K100

    盘点开发者最爱的 IntelliJ 插件 Top 10

    SQL Query Plugin 通过JDBC连接执行SQL语句的工具。它具有语法高亮、一次执行多个SQL语句,高亮显示主键和外键,直接编辑结果等功能。...Base64 递增/递减: 递增/递减所有找到的数字 复制行并且递增/递减所有找到的数字 创建序列:保持第一个数字,递增替换所有其他数字 递增重复的数字 按自然顺序排序: 按行倒序 按行随机排序 区分大小写...A-z排序 区分大小写z-A排序 不区分大小写A-Z排序 不区分大小写Z-A排序 按行长度排序 通过子选择行排序:每行仅处理一个选择/插入符号 对齐: 通过选定的分隔将选定的文本格式化为列/表格 将文本对齐为左.../中/右 过滤/删除/移除: grep选定的文本,所有行不匹配输入文字将被删除。...(不能在列模式下工作) 移除选定的文本 移除选定文本中的所有空格 删除选定文本中的所有空格 删除重复的行 只保留重复的行 删除空行 删除所有换行符 其他: 交换字符/选择/线/标记 切换文件路径分隔符:

    1.8K70

    史上最全的 Linux Shell 文本处理工具集锦,快收藏!

    指定每行显示的字段数 xargs参数说明 -d 定义定界符 (默认为空格 多行的定界符为 ) -n 指定输出为多行 -I {} 指定替换字符串,这个字符串在xargs扩展时会被替换掉,用于待执行的命令需要多个参数时...,在执行过程总对应当前行的字段数; $0:这个变量包含执行过程中当前行的文本内容; $1:第一个字段的文本内容; $2:第二个字段的文本内容; echo -e "line1 f2 f3 line2 line...NR}' file 累加每一行的第一个字段: echo -e "1 2 3 4 " | awk 'BEGIN{num = 0 ;print "begin";} {sum += $1;} END {print...):将正则匹配到的第一处内容替换为replacement_str;match(regex,string):检查正则表达式是否能够匹配字符串;length(string):返回字符串长度 echo | awk...迭代每一个字符 ${string:startpos:numof_chars}:从字符串中提取一个字符;(bash文本切片)${#word}:返回变量word的长度 for((i=0;i<${#word}

    4K50

    Linux Shell 文本处理工具集锦

    -n:指定每行显示的字段数 xargs参数说明 -d 定义定界符 (默认为空格 多行的定界符为 \n) -n 指定输出为多行 -I {} 指定替换字符串,这个字符串在xargs扩展时会被替换掉,用于待执行的命令需要多个参数时...截取文件的第2列和第4列: cut -f2,4 filename 去文件除第3列的所有列: cut -f3 --complement filename -d 指定定界符: cat -f2 -d";"...,在执行过程总对应当前行的字段数; $0:这个变量包含执行过程中当前行的文本内容; $1:第一个字段的文本内容; $2:第二个字段的文本内容; echo -e "line1 f2 f3\n line2...END {print NR}' file 累加每一行的第一个字段: echo -e "1\n 2\n 3\n 4\n" | awk 'BEGIN{num = 0 ; print "begin";} {...string):将正则匹配到的第一处内容替换为replacement_str; match(regex,string):检查正则表达式是否能够匹配字符串; length(string):返回字符串长度

    3.3K70

    Linux文本处理工具,看这篇就够了。

    指定每行显示的字段数 xargs参数说明 -d 定义定界符 (默认为空格 多行的定界符为 ) -n 指定输出为多行 -I {} 指定替换字符串,这个字符串在xargs扩展时会被替换掉,用于待执行的命令需要多个参数时...,在执行过程总对应当前行的字段数; $0:这个变量包含执行过程中当前行的文本内容; $1:第一个字段的文本内容; $2:第二个字段的文本内容; echo -e "line1 f2 f3 line2 line...NR}' file 累加每一行的第一个字段: echo -e "1 2 3 4 " | awk 'BEGIN{num = 0 ;print "begin";} {sum += $1;} END {print...):将正则匹配到的第一处内容替换为replacement_str;match(regex,string):检查正则表达式是否能够匹配字符串;length(string):返回字符串长度 echo | awk...迭代每一个字符 ${string:startpos:numof_chars}:从字符串中提取一个字符;(bash文本切片) ${#word}:返回变量word的长度 for((i=0;i<${#word

    4.5K10

    Linux如何通过命令查看日志文件的某几行(中间几行或最后几行)「建议收藏」

    3.1 sed命令 命令 功能 a\ 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行 c\ 用此符号后的新文本替换当前行中的文本。...多行时除最后一行外,每行末尾需用”\”续行 i\ 在当前行之前插入文本。...多行时除最后一行外,每行末尾需用”\”续行 d 删除行 h 把模式空间里的内容复制到暂存缓冲区 H 把模式空间里的内容追加到暂存缓冲区 g 把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容...最多可以定义9个标签,从左边开始编号,最左边的是第一个。此例中,对第1到第20行进行处理,you被保存为标签1,如果发现youself,则替换为your。...sed使用该命令将一个文本文件中的内容加到当前文件的特定位置上。

    9.8K60

    搞定Linux Shell文本处理工具,看完这篇集锦就够了

    -n:指定每行显示的字段数 xargs参数说明 -d 定义定界符 (默认为空格 多行的定界符为 \n) -n 指定输出为多行 -I {} 指定替换字符串,这个字符串在xargs扩展时会被替换掉,用于待执行的命令需要多个参数时...,在执行过程总对应当前行的字段数; $0:这个变量包含执行过程中当前行的文本内容; $1:第一个字段的文本内容; $2:第二个字段的文本内容; echo -e "line1 f2 f3\n line2...' END {print NR}' file 累加每一行的第一个字段: echo -e "1\n 2\n 3\n 4\n" | awk 'BEGIN{num = 0 ; print "begin...string):将正则匹配到的第一处内容替换为replacement_str; match(regex,string):检查正则表达式是否能够匹配字符串; length(string):返回字符串长度...迭代每一个字符 ${string:start_pos:num_of_chars}:从字符串中提取一个字符;(bash文本切片) ${#word}:返回变量word的长度 for((i=0;i<${#word

    6.4K41

    搞定 Linux Shell 文本处理工具

    n:指定每行显示的字段数 xargs参数说明 -d 定义定界符 (默认为空格 多行的定界符为 ) -n 指定输出为多行 -I {} 指定替换字符串,这个字符串在xargs扩展时会被替换掉,用于待执行的命令需要多个参数时...#截取文件的第2列和第4列: cut -f2,4 filename #去除文件第3列的所有列: cut -f3 --complement filename #-d 指定定界符: cat -f2...,在执行过程总对应当前行的字段数; $0:这个变量包含执行过程中当前行的文本内容; $1:第一个字段的文本内容; $2:第二个字段的文本内容; echo -e "line1 f2 f3 line2 line...{print NR}' file #累加每一行的第一个字段: echo -e "1 2 3 4 "| awk 'BEGIN{num = 0 ;print "begin";} {sum += $1;...):将正则匹配到的第一处内容替换为replacement_str; match(regex,string):检查正则表达式是否能够匹配字符串; length(string):返回字符串长度 echo

    1.7K10

    搞定 Linux Shell 文本处理工具的操作命令

    :指定每行显示的字段数 xargs参数说明 -d 定义定界符 (默认为空格 多行的定界符为 ) -n 指定输出为多行 -I {} 指定替换字符串,这个字符串在xargs扩展时会被替换掉,用于待执行的命令需要多个参数时...#截取文件的第2列和第4列: cut -f2,4 filename #去文件除第3列的所有列: cut -f3 --complement filename #-d 指定定界符: cat -f2 -...,在执行过程总对应当前行的字段数; $0:这个变量包含执行过程中当前行的文本内容; $1:第一个字段的文本内容; $2:第二个字段的文本内容; echo -e "line1 f2 f3 line2 line... {print NR}' file  #累加每一行的第一个字段: echo -e "1 2 3 4 "| awk 'BEGIN{num = 0 ;print "begin";} {sum += $1;...):将正则匹配到的第一处内容替换为replacement_str; match(regex,string):检查正则表达式是否能够匹配字符串; length(string):返回字符串长度 echo |

    2.5K20

    sed的用法详解

    /old/new/将每行的第一个old替换为new s/old/new/3将每行的第三个old替换为new s/old/new/g 将所有的old替换为new 替换操作的分割符/可改为其他字符,如# $...'/^$/' a.txt 删除重复空行 以上所有动作需要加 -i 替换文本 sed ‘s/xml/XML/’ a.txt 将每行的第一个xml替换为XML sed 's/xml/XML/3' a.txt...删除每行第二个和最后一个字符 sed -i 's/.//2;s/.$//' a.txt 删除每行第二个和最后一个单词 sed -r 's/[a-Z]+//2;s/[a-Z]+([^a-Z]*)$/\1.../' a.txt 将文件中每行的第一个和第二个字符互换 sed -r 's/^(.)(.)(.*)/\2\1\3/' a.txt 将文件中每行的第一个和第二个单词互换 sed -r 's/([a-Z]+...,如$1,$3分别表示第1,第3列 $0:当前读入的整行文本内容 NF:记录当前处理行的字段个数,列数 NR:记录当前已读入行的数量,行数 FNR:保存当前处理行在原文本内的序号,行号 FILENAME

    4.3K31

    SQL窗口函数概述

    窗口函数将一组行中的一个(或多个)字段的值组合在一起,并在结果集中为生成的列中的每一行返回一个值。...PARTITION BY partfield:一个可选子句,根据指定的partfield分区行。 Partfield可以是单个字段,也可以是用逗号分隔的字段列表。...ORDER BY orderfield:一个可选子句,根据指定的orderfield对行排序。 Orderfield可以是单个字段,也可以是用逗号分隔的字段列表。...如果指定PARTITION BY和ORDER BY,则行将被分区为组,每个组的orderfield值将被排序,窗口函数将创建一个新的结果集字段并为每行赋值。...ROW_NUMBER()——为同一窗口中的每一行分配一个唯一的连续整数,从1开始。 如果多行窗口函数字段包含相同的值,则为每一行分配一个唯一的连续整数。

    2.4K11
    领券