我正在尝试从命令行将日志文本输出到 gnome-terminal 选项卡。这对于保存会话数据并在以后恢复它很有用。
以下是一个例子:
#! /bin/bash
long_text=$(awk "BEGIN { for (i = 1; i < 120; i++ ) { printf \"%s\", \"1234567890\" } }")
cmd="bash -c \"stty cols 159; echo \\\"$long_text\\\"; tput cols; exec bash\""
gnome-terminal --maximize --tab -t A -e "$cmd" --tab -t B -e "$cmd"
我遇到的问题是,只有最后一个选项卡(选项卡 B)最初会遵守 159 的列宽。第一个选项卡(选项卡 A)使用 80 的列宽。以下是选项卡 A 的屏幕截图:
这是标签 B:
我怎样才能使用 159 列将文本输出到选项卡 A?
答案1
您可以轻松更改配置文件首选项以满足您的要求。从菜单中选择编辑->配置文件首选项,然后进行调整以满足您的要求,如下所示。
答案2
如果您更喜欢使用命令行的通用解决方案,您可以尝试fold
改变列的宽度。
格式为:
fold --width=width_of_column filename
例如:
fold --width=120 file.txt
这将使列的宽度为120
。
这是一个测试:
$ head -1 file.txt | wc -m
143
$ head -1 file.txt | fold --width=130 | wc -l
2
$ head -1 file.txt | fold --width=130 | head -1 | wc -m
131
这131
是因为\n
在按 计数时在第一行包含了wc
。
查看man fold
获得更多想法fold
。