Вы можете использовать UNetbootin для linux или, если у вас есть ПК с Ubuntu, вы можете использовать USB Startup Disk Creator инструмент.
Использование awk:
awk 'NF{print "--This is " $1 " and his \047roll number\047 is " $2 }' file
\047
— восьмеричный код одинарной кавычки '
.
Другой альтернативой является определение переменной, содержащей символ одинарной кавычки.:
awk -v sq="'" 'NF{print "--This is " $1 " and his "sq"roll number"sq" is " $2 }' file
Простой while
контур:
while read -r name roll; do if [[ -z "$name" ]]; then echo ; else echo "--This is $name and his 'roll number' is $roll"; fi; done < infile
--This is kevin and his 'roll number' is n1
--This is edwin and his 'roll number' is n2
--This is mevin and his 'roll number' is n3
Это решение сохраняет пустые строки, как кажется, пожелания OP.
infile
выглядит так, как показано ниже:
cat infile
kevin n1
edwin n2
mevin n3
Это лишено обработки ошибок и др., и, конечно, зависит от формата файла, указанного OP.
Проблема не в awk, а в том, как оболочка обрабатывает (одинарные кавычки в данном случае ).
Существует несколько альтернатив оболочки:
$ awk $'NF{print "--This is " $1 " and his \'roll number\' is " $2 }' <infile
$ awk 'NF{print "--This is " $1 " and his '\''roll number'\'' is " $2 }' <infile
$ awk 'NF{print "--This is " $1 " and his \047roll number\047 is " $2 }' <infile
$ awk 'NF{print "--This is " $1 " and his " q "roll number" q " is " $2 }' q=\' <infile
$ awk -vq=\' 'NF{print "--This is " $1 " and his " q "roll number" q " is " $2 }' <infile
Будет напечатано все:
--This is kevin and his 'roll number' is n1
--This is edwin and his 'roll number' is n2
--This is mevin and his 'roll number' is n3
перламутровый -вкладыш:
perl -ane '@F && printf "--This is %s and his '\''roll number'\'' is %s\n", @F' file