如何在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,但我认为你可以在这里解释这个想法。它基本上是两个数字