Puede usar el comando cortar. Para conseguir la 3ª posición:
echo "SAMPLETEXT" | cut -c3
Consulta este enlacehttp://www.folkstalk.com/2012/02/cut-command-in-unix-linux-examples.html
(Casos avanzados)Sin embargo, modificar IFS también es algo bueno, especialmente cuando su entrada puede tener espacios. Solo en ese caso, use el siguiente
saveifs=$IFS
IFS=$(echo -en "\n\b")
echo "SAMPLETEXT" | cut -c3
IFS=$saveifs
grep
не нужно, можно отфильтровать строки с помощьюawk
:
Поскольку вы не предоставили образец, я не могу проверить, но что-то вроде этого должно работать:
awk -F'~' '$1==6999 && $23>0 {$24="G"} {OFS=FS; print}' file.txt
Для записи в тот же файл:
Для GNU awk
просто добавьте следующую опцию:
gawk -i inplace...
В противном случае вам нужен временный файл:
awk... > file.txt.tmp && mv file.txt.tmp file.txt