По первому вопросу см. Википедию , здесь у вас есть минимальные требования. Второй вопрос, просто поиск в Google . Третий вопрос с Linux.org . В-четвертых, для меня это Ubuntu, но это зависит от того, что я хочу делать.
Я рекомендую вам, если вы будете использовать систему Gnu / Linux, использовать Google, я нашел все ваши ответы всего за 5 минут поиска.
Системы GNU / Linux дружественны к Google.
Вы можете попробовать этот awk:
awk -F'\n' '!f{$1="\""$1;f=1}{f=f+gsub("[|]","\"|\"")}f==3{$0=$0"\"";f=0}1' infile
Вы можете сделать это с помощьюperl
:
perl -0pe 's/([^|]*)\|([^|]*)\|([^|\n]*)(\n|$)/"\1"|"\2"|"\3"\4/g' input_file
-0
читать файл сразу, а не построчно. -p
напечатать строку в конце -e
выражение s/pattern/replacement/g
Заменить шаблон заменой $ cat input.txt | tr "\n" "\t" \
|awk -v FS="|" -v OFS="|" '{for(i=1;i<=NF;i++) $i="\""$i"\"";}1' \
|tr "\t" "\n"
tr
преобразовать новую строку во вкладку. Таким образом, вход линеаризуется awk
обрабатывать |
как разделитель полей. Теперь мы можем перебрать каждое поле и добавить кавычки вокруг. После этого печатается вся строка tr
преобразует вкладку обратно в новую строку