给出输入
123\t456\tabc\tdef
创建输出
123\t456\nabc\tdef
将显示为
123 456
abc def
请注意,它需要跨多行工作,而不仅仅是两行。
修改
一个更好的例子可能有助于澄清。
输入(预计只有1行输入)
1\t2\t3\t4\t5\t6\t7\t8
预期产出
1 2
3 4
5 6
7 8
...
答案 0 :(得分:2)
这个小技巧应该有效:
sed 's/\(\t[^\t]*\)\t/\1\n/g' < input_file.txt
编辑: 以下是一个例子:
$ cat 1.txt
one two three four five six seven
five six seven
$ sed 's/\(\t[^\t]*\)\t/\1\n/g' < 1.txt
one two
three four
five six
seven
five six
seven
$
EDIT2:
对于MacOS&#39;标准sed
试试这个:
$ sed $'s/(\t[^\t]*\t/\\1\\\n/g' < 1.txt
$
用于替换bash级别的转义字符。
答案 1 :(得分:2)
使用GNU sed:
sed 's/\t/\n/2;P;D;' file
用换行符替换第二次出现的制表符。
答案 2 :(得分:0)
假设以下是Input_file:
cat Input_file
123 456 abc def
然后将它们分成两列可能会帮助你。
xargs -n2 < Input_file
输出如下。
123 456
abc def