У меня есть один файл. Я хочу добавить '
в строке Эври beginning.also после первого слова, завершенного, я хочу поместить '
снова и затем ,
после этого я хочу повторение то же первое слово в 'same word'
. Как я могу сделать это?
например.
abc
xyz
pqr
mno
будет преобразован в
'abc','abc'
'xyz','xyz'
'pqr','pqr'
'mno','mno'
У меня есть тысячи таких строк. Как я могу достигнуть этого? Я использую человечность 16.04.
Я становлюсь произведенным как показано ниже.
То, что я хочу:
С уважением.
Используйте sed
:
sed "s/.*/'&','&'/" filename
s/foo/bar
замены foo
bar
. .*
соответствия целая строка, &
в заменяющем разделе вставляет целое соответствие.
Вы уже получили a sed
ответ. Вот несколько альтернатив:
awk
: Установка одинарной кавычки как переменная q
(для удобочитаемости) и out
как запись, окруженная одинарными кавычками, затем печатая out
с желаемым форматированием:
awk -v q="'" '{out=q$0q; print out","out}'
bash
: Чтение каждой строки, настраивая переменную out
содержать строку, окруженную одинарными кавычками, и наконец печатающий в нужном формате:
while IFS= read -r line; do out="'$line'"; printf '%s,%s\n' "$out" "$out"; done
python
: Чтение каждой строки и печать в использовании нужного формата print()
функция:
#!/usr/bin/env python3
with open('file.txt') as f:
for line in f:
line = line.rstrip()
print("'{}','{}'".format(line, line))
perl
: Замена каждой строки (.*
) с надлежащим форматированием, $&
в замене обозначает подобранную часть, в этом случае целая строка:
perl -pe "s/.*/'$&','$&'/"
Пример:
% cat file.txt
abc
xyz
pqr
mno
% awk -v q="'" '{out=q$0q; print out","out}' file.txt
'abc','abc'
'xyz','xyz'
'pqr','pqr'
'mno','mno'
% while IFS= read -r line; do out="'$line'"; printf '%s,%s\n' "$out" "$out"; done <file.txt
'abc','abc'
'xyz','xyz'
'pqr','pqr'
'mno','mno'
% perl -pe "s/.*/'$&','$&'/" file.txt
'abc','abc'
'xyz','xyz'
'pqr','pqr'
'mno','mno'