Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 将删除的字段移到换行符中_Linux_Shell_Unix_Awk - Fatal编程技术网

Linux 将删除的字段移到换行符中

Linux 将删除的字段移到换行符中,linux,shell,unix,awk,Linux,Shell,Unix,Awk,我有一个逗号分隔的txt文件,它必须只有五列,但有些行的列数超过了5列。 我想把第6到第10行移到新行,把第11到第15行移到新行,依此类推 下面是input.txt 1,2,3,4,5 12,13,14,15,16,11,17,18,19,20 22,23,24,25,26,22,27,28,29,21,30,31,32,33,34 1,2,3,4,5 12,13,14,15,16 11,17,18,19,20 22,23,24,25,26 22,27,28,29,21 30,31,32,3

我有一个逗号分隔的txt文件,它必须只有五列,但有些行的列数超过了5列。
我想把第6到第10行移到新行,把第11到第15行移到新行,依此类推

下面是
input.txt

1,2,3,4,5
12,13,14,15,16,11,17,18,19,20
22,23,24,25,26,22,27,28,29,21,30,31,32,33,34
1,2,3,4,5
12,13,14,15,16
11,17,18,19,20
22,23,24,25,26
22,27,28,29,21
30,31,32,33,34
下面是
Output.txt

1,2,3,4,5
12,13,14,15,16,11,17,18,19,20
22,23,24,25,26,22,27,28,29,21,30,31,32,33,34
1,2,3,4,5
12,13,14,15,16
11,17,18,19,20
22,23,24,25,26
22,27,28,29,21
30,31,32,33,34
我正试着用awk来完成这个,但是运气不好。我想要上面的输出。

这个怎么样

sed 's/,/ /g' file|xargs -n5 |sed 's/ /,/g'

1,2,3,4,5
12,13,14,15,16
11,17,18,19,20
22,23,24,25,26
22,27,28,29,21
30,31,32,33,34
解释。 1) sed命令:
sed's/,//g'
sed's/,/g'
用于替换字符

2) xargs-n5:

   -n max-args, --max-args=max-args
          Use at most max-args arguments per command line.  Fewer than max-args arguments will be
          used if the size (see the -s option) is exceeded, unless the -x  option  is  given,  in
          which case xargs will exit.
这个怎么样

sed 's/,/ /g' file|xargs -n5 |sed 's/ /,/g'

1,2,3,4,5
12,13,14,15,16
11,17,18,19,20
22,23,24,25,26
22,27,28,29,21
30,31,32,33,34
解释。 1) sed命令:
sed's/,//g'
sed's/,/g'
用于替换字符

2) xargs-n5:

   -n max-args, --max-args=max-args
          Use at most max-args arguments per command line.  Fewer than max-args arguments will be
          used if the size (see the -s option) is exceeded, unless the -x  option  is  given,  in
          which case xargs will exit.
这个怎么样

sed 's/,/ /g' file|xargs -n5 |sed 's/ /,/g'

1,2,3,4,5
12,13,14,15,16
11,17,18,19,20
22,23,24,25,26
22,27,28,29,21
30,31,32,33,34
解释。 1) sed命令:
sed's/,//g'
sed's/,/g'
用于替换字符

2) xargs-n5:

   -n max-args, --max-args=max-args
          Use at most max-args arguments per command line.  Fewer than max-args arguments will be
          used if the size (see the -s option) is exceeded, unless the -x  option  is  given,  in
          which case xargs will exit.
这个怎么样

sed 's/,/ /g' file|xargs -n5 |sed 's/ /,/g'

1,2,3,4,5
12,13,14,15,16
11,17,18,19,20
22,23,24,25,26
22,27,28,29,21
30,31,32,33,34
解释。 1) sed命令:
sed's/,//g'
sed's/,/g'
用于替换字符

2) xargs-n5:

   -n max-args, --max-args=max-args
          Use at most max-args arguments per command line.  Fewer than max-args arguments will be
          used if the size (see the -s option) is exceeded, unless the -x  option  is  given,  in
          which case xargs will exit.

您可以使用
grep

grep -oP '([^,]+,){4}[^,]+' inputfile

对于您的输入,它将产生:

1,2,3,4,5
12,13,14,15,16
11,17,18,19,20
22,23,24,25,26
22,27,28,29,21
30,31,32,33,34

您可以使用
grep

grep -oP '([^,]+,){4}[^,]+' inputfile

对于您的输入,它将产生:

1,2,3,4,5
12,13,14,15,16
11,17,18,19,20
22,23,24,25,26
22,27,28,29,21
30,31,32,33,34

您可以使用
grep

grep -oP '([^,]+,){4}[^,]+' inputfile

对于您的输入,它将产生:

1,2,3,4,5
12,13,14,15,16
11,17,18,19,20
22,23,24,25,26
22,27,28,29,21
30,31,32,33,34

您可以使用
grep

grep -oP '([^,]+,){4}[^,]+' inputfile

对于您的输入,它将产生:

1,2,3,4,5
12,13,14,15,16
11,17,18,19,20
22,23,24,25,26
22,27,28,29,21
30,31,32,33,34
使用
awk

awk -F, '{for (i=1;i<=NF;i++) printf "%s"(i%5==0?RS:FS),$i}' file
1,2,3,4,5
12,13,14,15,16
11,17,18,19,20
22,23,24,25,26
22,27,28,29,21
30,31,32,33,34
awk-F'{for(i=1;i使用
awk

awk -F, '{for (i=1;i<=NF;i++) printf "%s"(i%5==0?RS:FS),$i}' file
1,2,3,4,5
12,13,14,15,16
11,17,18,19,20
22,23,24,25,26
22,27,28,29,21
30,31,32,33,34
awk-F'{for(i=1;i使用
awk

awk -F, '{for (i=1;i<=NF;i++) printf "%s"(i%5==0?RS:FS),$i}' file
1,2,3,4,5
12,13,14,15,16
11,17,18,19,20
22,23,24,25,26
22,27,28,29,21
30,31,32,33,34
awk-F'{for(i=1;i使用
awk

awk -F, '{for (i=1;i<=NF;i++) printf "%s"(i%5==0?RS:FS),$i}' file
1,2,3,4,5
12,13,14,15,16
11,17,18,19,20
22,23,24,25,26
22,27,28,29,21
30,31,32,33,34

awk-F'{for(i=1;i假设您总共有5个模元素,并且您希望完全填充每一行,您也可以像这样使用
tr
paste

<file tr , \\n | paste -d, - - - - -

假设您总共有5个模元素,并且您希望完全填充每一行,您也可以像这样使用
tr
paste

<file tr , \\n | paste -d, - - - - -

假设您总共有5个模元素,并且您希望完全填充每一行,您也可以像这样使用
tr
paste

<file tr , \\n | paste -d, - - - - -

假设您总共有5个模元素,并且您希望完全填充每一行,您也可以像这样使用
tr
paste

<file tr , \\n | paste -d, - - - - -


@jonte,你能解释一下这个部分吗?
printf“%s”(i%5==0?RS:FS),$i
printf
使用这个格式:
%s”
选择模式
0,5,10,15..
中的值
$i
i%5==0
如果是,则使用
RS
=新行,如果不使用
FS
=逗号。它只是一个
如果
那么
否则
测试。init输入文件在行中有空格,在示例中只有两行。但现在它已被转换为ch愤怒,不确定,如果您更改了它,或者OP进行了更新。如果行中有空格,您的代码将失败。@BMV查看编辑历史记录,然后单击第一篇文章的“编辑”,查看OP是如何尝试格式化它的,在那里您可以看到三行原始行。@BMW您看得不正确。初始版本有三行,而不是两行。您需要单击“编辑”按钮,而不是编辑按钮。请尝试此链接:@jonte,请您解释一下这部分
printf“%s”(i%5==0?RS:FS),$i
printf
使用此格式:
%s”
选择模式
0,5,10,15..
中的值
$i
i%5==0
如果是,则使用
RS
=新行,如果不使用
FS
=逗号。它只是一个
如果
那么
否则
测试。init输入文件在行中有空格,在示例中只有两行。但现在它已被转换为ch愤怒,不确定,如果您更改了它,或者OP进行了更新。如果行中有空格,您的代码将失败。@BMV查看编辑历史记录,然后单击第一篇文章的“编辑”,查看OP是如何尝试格式化它的,在那里您可以看到三行原始行。@BMW您看得不正确。初始版本有三行,而不是两行。您需要单击“编辑”按钮,而不是编辑按钮。请尝试此链接:@jonte,请您解释一下这部分
printf“%s”(i%5==0?RS:FS),$i
printf
使用此格式:
%s”
选择模式
0,5,10,15..
中的值
$i
i%5==0
如果是,则使用
RS
=新行,如果不使用
FS
=逗号。它只是一个
如果
那么
否则
测试。init输入文件在行中有空格,在示例中只有两行。但现在它已被转换为ch愤怒,不确定,如果您更改了它,或者OP进行了更新。如果行中有空格,您的代码将失败。@BMV查看编辑历史记录,然后单击第一篇文章的“编辑”,查看OP是如何尝试格式化它的,在那里您可以看到三行原始行。@BMW您看得不正确。初始版本有三行,而不是两行。您需要单击“编辑”按钮,而不是编辑按钮。请尝试此链接:@jonte,请您解释一下这部分
printf“%s”(i%5==0?RS:FS),$i
printf
使用此格式:
%s”
选择模式
0,5,10,15..
中的值
$i
i%5==0
如果是,则使用
RS
=新行,如果不使用
FS
=逗号。它只是一个
如果
那么
否则
测试。init输入文件在行中有空格,在示例中只有两行。但现在它已被转换为ch愤怒,不确定,如果您更改了它,或者OP进行了更新。如果行中有空格,您的代码将失败。@BMV查看编辑历史记录,然后单击第一篇文章的“编辑”,查看OP是如何尝试格式化它的,在那里您可以看到三行原始行。@BMW您看得不正确。初始版本有三行,而不是两行。您需要单击“编辑”th按钮