awk/cut:跳过前两个字段并打印其余行

时间:2020-01-09 10:45:55  来源:igfitidea点击:

如何跳过一行开头的前两个或者三个字段,并打印其余行。
比如输入:

This is a test hello shell
我想输出为:
a test hello shell

如何在UNIX或者Linux下使用awk从nth字段打印行操作系统?
您可以如下使用awk命令。
语法如下,以跳过前两个字段并打印其余字段(感谢danliston):

awk '{ =""; =""; print}' filename

要跳过前三个字段,请执行:

awk '{ =""; =""; =""; print}' filename

您也可以指定输入字段分隔符。
在此示例中,使用:作为输入字段分隔符:

awk -F':' '{ =""; =""; print}' filename

旧解决方案

我的旧解决方案是跳过前两个文件并打印其余行:

echo 'This is a test' | awk '{print substr(
substr(s, i [, n])
, index(
awk '{print substr(
echo 'This is a test' | cut -d ' ' -f3
cut -d ' ' -f3
, index(
#!/bin/bash
_input="/path/to/file.name.txt"
while IFS= read -r line
do
    cut -d ' ' -f3- <<<"$line"
    ### same stuff with awk ###
    ### awk '{print substr(
-v	Show version
-d	Set delta value
-o	Set output file name
-i	Set input filename for this command
, index(
awk 'BEGIN{ print "<table>"}
{ printf "<tr><td>%s</td><td>", ; =""; print ##代码## "</td></tr>"}
END{ print "</table>"}' data.txt
,))}' <<< "$line" ### done < "${_input}"
,))}'
,))}'

您还可以使用substr:

##代码##

它返回从i开始的s的最多n个字符的子字符串。
如果省略n,则使用s的其余部分。
所以:

##代码##

您还可以使用cut命令:

##代码##

最后,使用bash while循环处理文件:

##代码##

如何使用awk创建HTML表格

假设您在名为data.txt的文本文件中具有以下数据:

##代码##

要创建html表代码,请运行:

##代码##