Получите 4-й элемент вашего CSV с помощью.
cut -d , -f 4 myFile.csv
Сохраните его в файл с помощью:
cut -d , -f 4 myFile.csv | cat >> my4thEltsFile.csv
Чтобы заменить все буквенно-цифровые символы наX
:
$ tr '[:alnum:]' 'X' <file
- XXXXX XXXXX
- XXXXX
Для заполнения пробелов между словами:
$ tr '[:alnum:]' 'X' <file | sed 's/X X/XXX/g'
- XXXXXXXXXXX
- XXXXX
Или, используя толькоsed
:
$ sed 's/[[:alnum:]]/X/g; s/X X/XXX/g' file
- XXXXXXXXXXX
- XXXXX
Использование sed
, как указано выше, но также ограничение модификации строками, начинающимися с тире, которым предшествуют необязательные пробелы и/или табуляция:
$ sed '/^[[:blank:]]*-/ { s/[[:alnum:]]/X/g; s/X X/XXX/g; }' file
- XXXXXXXXXXX
- XXXXX
Вы можете заметить, что заполнение пробелов работает только тогда, когда в данных нет однобуквенных слов. Строка типа This is a tree
будет преобразована в XXXXXXXXX XXXX
. Чтобы избежать этого, вы можете сделать простой цикл:
sed -e '/^[[:blank:]]*-/ { s/[[:alnum:]]/X/g; :again' \
-e 's/X X/XXX/g; t again' -e '}' file
Это выполняет вторую замену, а затем возвращается к метке again
, если эта замена действительно что-то изменила.
Или, проще, но без пробела в конце:
sed '/^[[:blank:]]*-/ { s/[[:alnum:]]/X/g; s/X /XX/g; }' file