2016-07-19 3 views
-1

Я не могу получить полную строку, используя awk. Например, File.txt имеет,Получить полную строку с помощью awk

C1 C2 C3 
A B 'A B C' 
C D 'D E F' 

Если я использую ниже код,

awk '{print $1 "," $3}' File.txt 

Я получаю результат, как,

A,'A 
C,'D 

Ожидаемый выход,

A,'A B C' 
C,'D E F 
+0

Вы уверены, что содержимое вашего файла правильно отформатировано/разбито на строки? для меня $ 1 будет C1 и $ 3 будет C3? –

+0

Форматирование не работает. – Rock

+0

Пожалуйста, прочитайте справку по форматированию и заставьте ее работать - вы не можете ожидать, что мы угадаем, какой будет вход? –

ответ

1
awk '{print $1 "," $3,$4,$5}' file 
A,'A B C' 
C,'D E F' 
+0

Я уже пробовал с $ 3, $ 4, $ 5. Любой другой способ, подобный этому, не будет возможен для более длинной строки – Rock

2

По умолчанию de лимитер для awk - это место. Поскольку данные имеют вкладку, вы должны разграничить с '\ т'

file.txt

A B 'A B C' 
C D 'D E F' 

команды AWK

awk '{BEGIN FS="\t"}{print $1 "," $3}' <file.txt 

выходного

A,'A B C' 
C,'D E F'