Как напечатать фамилию _в файле.txt?

вы можете сделать это просто так в bash :, который имитирует человеческое взаимодействие с su. Я использую его в своих автоматических удаленных установщиках для серверов, на которых нет sudo.

sucmd="sh -c 'sleep 3; echo $pass' | script -qc 'su -c./yourscript.sh root '"

ssh -t -l "$user" "$ipaddress" -p 22 "$sucmd"

С уважением,

-1
18.08.2021, 13:31
2 ответа

Предположим, вы хотите, чтобы данные имени и фамилии находились в одной строке с символом табуляции в -между ними:

Использованиеxmlstarlet:

xmlstarlet sel -t -m '/names' \
    -v 'first_name' -nl \
    -v 'last_name' -nl file.xml 2>/dev/null |
paste - -

Команда xmlstarletанализирует значения узлов first_nameи last_nameпод узлом namesи выводит их в одной строке каждое.

Две строки вывода вставляются в одну строку с символом табуляции в качестве разделителя с помощью paste. Используйте, например. -d ','с paste, чтобы получить вывод с разделителями-запятыми -.

Я перенаправляю стандартный поток ошибок на /dev/null, потому что позже в документе есть несколько фиктивных объявлений пространств имен, на которые xmlstarletсправедливо жалуется.


Использование xqизhttps://kislyuk.github.io/yq/:

xq -r '.names | [.first_name,.last_name ] | @tsv' file.xml

Здесь используется оператор @tsvдля создания вывода с разделителями табуляцией -. Он выводит те же данные, что и код xmlstarletвыше, но вместо выражения XPath мы используем выражение jq.

Измените @tsvна @csv, чтобы получить выходные данные в формате CSV с полными котировками.

2
20.08.2021, 10:26
 awk -F "[><]" '/first_name|last_name/{print $3}' file.txt |awk 'ORS=" "'

output

Mohammed Sani ABACHA
0
20.08.2021, 10:26

Теги

Похожие вопросы