У меня есть текстовый файл, который выглядит следующим образом:Awk: считать все пространство до второго столбца как одну переменную?
This is the first line 80 55 75%
Second line 25 95 74%
The next line 50 50 50%
Как вы можете видеть, на левой стороне число слов будет меняться. В настоящее время, если я использую команду:
awk 'NR == 1 {print $1,$2,$3,$4}' file
Это работает отлично подходит для первой линии и возвратит:
This is the first line
Но если я делаю это на второй линии:
awk 'NR == 2 {print $1,$2,$3,$4}' file
Я получаю это, как и ожидалось:
Second line 25 95
Но это не то, что мне нужно. Для сценариев мне нужен awk или, возможно, еще один инструмент, чтобы «видеть» что-либо до второго столбца чисел как одну переменную. Поэтому, независимо от количества слов с левой стороны, они всегда будут рассматриваться как одна переменная. Как я могу это достичь?
Примечание: я могу иметь такие строки:
This is a testmarket001 65 45 25%
Так что я не думаю, что вы можете просто сказать AWK, чтобы напечатать все слова до первого числа, как это было бы отрезать часть линии ,
У вас есть вкладки между колонками? Это облегчило бы жизнь. – fedorqui
У вас будет только 3 col.s номеров в конце? Другой способ сделать жизнь легкой :) – Fazlin
Почему бы просто не выбрать [a-z] [A-Z] только со всей строки? – SMA