我读过这个帖子https://unix.stackexchange.com/a/7718/256195,仅当var
不包含任何制表符/空格时,但在我的情况下它确实包含空格,如下例所示:
"this is a test" this_is_a_solid_line_that_doesnot_contain_tab_or_spaces
命令column
也会将 ..etc 分开this
is
,但我希望某些东西仅作用于"this is a test"
和this_is_a_solid_line_that_doesnot_contain_tab_or_spaces
。
目的:我在一个文件中有一堆像上面这样的行,它们没有正确对齐。
答案1
假设输入不包含|
字符,您可以将不在引号内的空白序列转换为|
(或输入中未出现的任何其他字符),然后通过管道传输到column -ts'|'
:
<input.txt perl -lpe 's/(".*?")|\s+/$1||"|"/ge' | column -ts'|'