Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.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
如何在unix中以所需格式转换以下文本?_Unix_Awk - Fatal编程技术网

如何在unix中以所需格式转换以下文本?

如何在unix中以所需格式转换以下文本?,unix,awk,Unix,Awk,我有一个文件,其格式如下: 1 2 3 4 5 6 我试图让它像: 1 2 3 4 5 6 我试过了 awk'BEGIN{ORS=”“}{print}test.txt 它是123456。但我需要按照前面提到的格式制作。 我也试过了 awk 'BEGIN { ORS= " "} {print}' test.txt | tr ' ' '\n' 但是,代码> Tr/代码>不考虑双空白,结果如下: 1 2 3 4 5 6 我能做什么 PS在文件中,1和2之间有一个换行符,4和5之间有一个换行符

我有一个文件,其格式如下:

1
2
3
4
5
6
我试图让它像:

1 2
3 4
5 6
我试过了

awk'BEGIN{ORS=”“}{print}test.txt

它是123456。但我需要按照前面提到的格式制作。 我也试过了

awk 'BEGIN { ORS= " "} {print}' test.txt | tr '  ' '\n'

但是,<>代码> Tr/代码>不考虑双空白,结果如下:

1
2
3
4
5
6
我能做什么


PS在文件中,1和2之间有一个换行符,4和5之间有一个换行符,依此类推,2和3之间有两个换行符,4和5之间有两个换行符,依此类推。由于在此编辑器中的知识有限,我无法以这种方式打印。

首先删除所有空行,然后在GNU sed中使用N选项

sed '/^\s*$/d' file | sed 'N; s/\n/ /'

首先删除所有空行,然后在GNU sed中使用N选项

sed '/^\s*$/d' file | sed 'N; s/\n/ /'

首先删除所有空行,然后在GNU sed中使用N选项

sed '/^\s*$/d' file | sed 'N; s/\n/ /'

首先删除所有空行,然后在GNU sed中使用N选项

sed '/^\s*$/d' file | sed 'N; s/\n/ /'

如果您不介意使用bash,我有一个想法:

content=`cat your_file`

while [ -n "$content" ]; do
    read a b content <<< $content
    echo $a $b >> target_file
done
content=`cat您的_文件`
而[-n“$content”];做
读取b内容目标文件
完成

此代码可以将字符串折叠两次。请注意,在这段代码中引用很重要。

如果您不介意使用bash,我有一个想法:

content=`cat your_file`

while [ -n "$content" ]; do
    read a b content <<< $content
    echo $a $b >> target_file
done
content=`cat您的_文件`
而[-n“$content”];做
读取b内容目标文件
完成

此代码可以将字符串折叠两次。请注意,在这段代码中引用很重要。

如果您不介意使用bash,我有一个想法:

content=`cat your_file`

while [ -n "$content" ]; do
    read a b content <<< $content
    echo $a $b >> target_file
done
content=`cat您的_文件`
而[-n“$content”];做
读取b内容目标文件
完成

此代码可以将字符串折叠两次。请注意,在这段代码中引用很重要。

如果您不介意使用bash,我有一个想法:

content=`cat your_file`

while [ -n "$content" ]; do
    read a b content <<< $content
    echo $a $b >> target_file
done
content=`cat您的_文件`
而[-n“$content”];做
读取b内容目标文件
完成

此代码可以将字符串折叠两次。请注意,在这段代码中,引号很重要。

或者当您发布了一个
awk
问题时,它在awk中

 awk '{printf("%s %s", $0, (NR%2) ? "": "\n") }' file
输出

1 2
3 4
5 6

IHTH

或者当您发布了一个
awk
问题时,它在awk中

 awk '{printf("%s %s", $0, (NR%2) ? "": "\n") }' file
输出

1 2
3 4
5 6

IHTH

或者当您发布了一个
awk
问题时,它在awk中

 awk '{printf("%s %s", $0, (NR%2) ? "": "\n") }' file
输出

1 2
3 4
5 6

IHTH

或者当您发布了一个
awk
问题时,它在awk中

 awk '{printf("%s %s", $0, (NR%2) ? "": "\n") }' file
输出

1 2
3 4
5 6

IHTH

您也可以使用
pr
进行此操作:

$ seq 10 | pr -t -T -a -s" " -2
1 2
3 4
5 6
7 8
9 10

您也可以为此使用
pr

$ seq 10 | pr -t -T -a -s" " -2
1 2
3 4
5 6
7 8
9 10

您也可以为此使用
pr

$ seq 10 | pr -t -T -a -s" " -2
1 2
3 4
5 6
7 8
9 10

您也可以为此使用
pr

$ seq 10 | pr -t -T -a -s" " -2
1 2
3 4
5 6
7 8
9 10

如果文件名为
test.txt
,则可以执行以下操作

xargs -L 2 < test.txt
xargs-l2
如果您的文件名为
test.txt
,您可以

xargs -L 2 < test.txt
xargs-l2
如果您的文件名为
test.txt
,您可以

xargs -L 2 < test.txt
xargs-l2
如果您的文件名为
test.txt
,您可以

xargs -L 2 < test.txt
xargs-l2
在unix中有许多方法可以完成此任务。除了已经提供的答案外,以下是几种方法:

使用sed:

sed 'N;s/\n/ /' test.txt
使用awk:

awk 'ORS=NR%2?FS:RS' test.txt
使用粘贴:

paste -s -d" \n" test.txt
编辑- 我刚看到你关于新台词的说明。如果文件中有多个空白新行,则我的答案中的上述解决方案都无法正常工作。首先,您必须使用如下方法删除它们:

grep . test.txt | {solution from above}

在unix中有许多方法可以完成此任务。除了已经提供的答案外,以下是几种方法:

使用sed:

sed 'N;s/\n/ /' test.txt
使用awk:

awk 'ORS=NR%2?FS:RS' test.txt
使用粘贴:

paste -s -d" \n" test.txt
编辑- 我刚看到你关于新台词的说明。如果文件中有多个空白新行,则我的答案中的上述解决方案都无法正常工作。首先,您必须使用如下方法删除它们:

grep . test.txt | {solution from above}

在unix中有许多方法可以完成此任务。除了已经提供的答案外,以下是几种方法:

使用sed:

sed 'N;s/\n/ /' test.txt
使用awk:

awk 'ORS=NR%2?FS:RS' test.txt
使用粘贴:

paste -s -d" \n" test.txt
编辑- 我刚看到你关于新台词的说明。如果文件中有多个空白新行,则我的答案中的上述解决方案都无法正常工作。首先,您必须使用如下方法删除它们:

grep . test.txt | {solution from above}

在unix中有许多方法可以完成此任务。除了已经提供的答案外,以下是几种方法:

使用sed:

sed 'N;s/\n/ /' test.txt
使用awk:

awk 'ORS=NR%2?FS:RS' test.txt
使用粘贴:

paste -s -d" \n" test.txt
编辑- 我刚看到你关于新台词的说明。如果文件中有多个空白新行,则我的答案中的上述解决方案都无法正常工作。首先,您必须使用如下方法删除它们:

grep . test.txt | {solution from above}

使用编辑框左上角的
{}
工具进行代码/数据/输出。祝你好运。使用编辑框左上角的
{}
工具进行代码/数据/输出。祝你好运。使用编辑框左上角的
{}
工具进行代码/数据/输出。祝你好运。使用编辑框左上角的
{}
工具进行代码/数据/输出。祝你好运。嗨,谢谢你的回答。但实际上我的组织使用的是使用KSH的IBM AIX。@Mistu4u em。。。我不知道ksh,但我认为你可以在这里解释这个想法。它基本上是一次读取两个数字并进行迭代。嗨,谢谢你的回答。但实际上我的组织使用的是使用KSH的IBM AIX。@Mistu4u em。。。我不知道ksh,但我认为你可以在这里解释这个想法。它基本上是一次读取两个数字并进行迭代。嗨,谢谢你的回答。但实际上我的组织使用的是使用KSH的IBM AIX。@Mistu4u em。。。我不知道ksh,但我认为你可以在这里解释这个想法。它基本上是一次读取两个数字并进行迭代。嗨,谢谢你的回答。但实际上我的组织使用的是使用KSH的IBM AIX。@Mistu4u em。。。我不知道ksh,但我认为你可以在这里解释这个想法。它基本上是两个数字