我有一个文件格式如下:
1
2
3
4
5
6
我试图让它像:
1 2
3 4
5 6
我试过了
awk 'BEGIN { ORS= " "} {print}' test.txt
它使1 2 3 4 5 6.但我需要以上述格式制作它。 我也试过
awk 'BEGIN { ORS= " "} {print}' test.txt | tr ' ' '\n'
但似乎tr
不考虑双空格,结果是:
1
2
3
4
5
6
我该怎么办?
PS 在文件中有一个换行符介于1和2以及4和5之间,依此类推,两个换行符介于2和3以及4和5之间,依此类推。由于这个编辑器的知识有限,我无法以这种方式打印。
答案 0 :(得分:3)
如果您的文件名为xargs -L 2 < test.txt
,则可以执行
- (void)viewWillAppear:(BOOL)animated{
[_firstSlider setValue:[[NSUserDefaults standardUserDefaults] floatForKey:@"firstSliderValue"]];
}
- (IBAction)firstSliderValueChange:(id)sender {
[[NSUserDefaults standardUserDefaults] setFloat:[_firstSlider value] forKey:@"firstSliderValue"];
}
答案 1 :(得分:0)
首先删除所有空行,然后在GNU sed中使用N选项
sed '/^\s*$/d' file | sed 'N; s/\n/ /'
答案 2 :(得分:0)
如果你不介意使用bash,我有一个想法:
content=`cat your_file`
while [ -n "$content" ]; do
read a b content <<< $content
echo $a $b >> target_file
done
此代码可以将字符串折叠两次。注意引用在这个片段中很重要。
答案 3 :(得分:0)
或者当您发布awk
个问题时,这里是awk
awk '{printf("%s %s", $0, (NR%2) ? "": "\n") }' file
<强>输出强>
1 2
3 4
5 6
IHTH
答案 4 :(得分:0)
您也可以使用$ seq 10 | pr -t -T -a -s" " -2
1 2
3 4
5 6
7 8
9 10
:
userAgent
答案 5 :(得分:0)
在unix中有很多方法可以完成这项任务。除了已经提供的答案之外,还有以下几种方法:
使用sed:
# label1
#variable=foobar1
# label2
#variable=foobar2
使用awk:
sed 'N;s/\n/ /' test.txt
使用粘贴:
awk 'ORS=NR%2?FS:RS' test.txt
编辑 - 我刚刚看到你关于新线路的说明。如果文件中有多个空白的新行,我的答案中的上述解决方案都无法正常工作。您首先必须使用以下内容删除它们:
paste -s -d" \n" test.txt