2013-08-19 5 views
1

Я новичок в языке сценариев командной оболочки, и я пытаюсь извлечь выгоду каждую первую букву первого слова в каждом предложении из текстового файла под названием input.txt и я хочу этот входной файл, чтобы быть аргументом сценария оболочкиКак заглавная первая буква первого слова в каждом предложении с использованием сценария оболочки?

./script.sh input.txt 

образец входного файла:

i am Andrew. you are Jhon. here we are, forever. 

результат файла:

I am Andrew. You are Jhon. Here we are, forever. 

Приветствия

ответ

0

Самый простой способ - использовать sed с регулярным выражением для поиска первого предложения и любой буквы, которая появляется после периода после этого. Примените регулярное выражение глобально.

Если в текстовом файле есть заголовки, тогда это становится немного сложнее, если у вас нет способа разграничения заголовков.

man sed 
+0

Я не думаю, что это ответ – fedorqui

+0

Строго говоря, не было и речи. Я догадался, что вопрос «какой подход я должен принять для решения этой проблемы?». Это сайт с вопросом и ответами, а не сайт, отвечающий за реализацию, и другие люди. – jmh

2

Вы можете использовать СЭД для этого

text = 'i am Andrew. you are Jhon. here we are, forever.' 
echo $text | sed -E 's/(^[a-z]|\. [a-z])/\U&\E/g' 

Этот сценарий прописную все, что письмо, которое приходит после того, как в начале строки или что приходит после .. Этого достаточно для вашей цели?