Используйте awk
попробуйте следующее:
$ awk '{print $2, $4}' file
Где $ x
- позиция слова, это разделено пробелами
например.
$ echo "I have a nice car" | awk '{print $2, $4}'
have nice
На самом деле не существует двух типов новых строк; \n
— это просто последовательность символов, пока вы не передадите ее в printf '%b'
или какой-либо другой команде, такой как echo -e
, которая интерпретирует ее как управляющую последовательность обратной косой черты.
Таким образом, вы можете использовать printf '%b'
для преобразования любых \n
последовательностей в новые строки, а затем удалить все новые строки с помощью подстановки параметров и bash строки C -:
v='ab\n cd
ef
'
printf -v w '%b' "$v"; printf '%s\n' "${w//$'\n'}"
ab cd ef
Вы можете просто использовать эхо. Без -e и ", echo видит \n как строку, и вы можете удалить ее, используя подстановку параметров.
echo ${v//\\n}