Mam plik tekstowy, w którym chcę zamienić ciąg z nowym ciągiem, a następnie dodać lub usunąć spacje, aby uzyskać taką samą liczbę znaków. Na przykład, chcę wymienićsed - zamień ciąg znaków na równą liczbę znaków
string .10
z
longer_string .10
w istocie muszę wymienić „string”, a następnie mieć”.10' w odpowiedniej kolumnie, regarldess liczby znaki w ciągu zastępującym.
Hi @ ericvb86 masz na myśli coś takiego jak ten "sed-e"/string/longer_string/g 'file.txt'? –
możesz użyć zamiennika skryptu ed lub vim, aby to zrobić, w przeciwnym razie możesz utworzyć skrypt, który jest niezależny od rozmiaru łańcucha dopasowania rozmiaru zastępczego, aby dopasować/zastąpić potrzebne spacje, niezależnie od rozmiaru diff. – alexscott
Re alexscott's odpowiedź: tak, miałem zamiar powiedzieć, że to wygląda bardziej na pracę dla vi/vim niż sed. Wyszukaj ciąg ('/^string'), vim-replace z dłuższym ciągiem znaków (' Rlonger-string '). Nie znam dokładnego kodu vimscript dla tego; musisz zbadać: https://en.wikipedia.org/wiki/Vim_(text_editor)#Vim_script. –