Обрезать конец n-го столбца Unix - PullRequest
3 голосов
/ 02 апреля 2012

У меня есть структура таблицы:

ous.txt 1452 1793

out.txt 36796 14997

ouw.txt 478 4247

3 столбца и много строк.

Я хочу обрезать ".txt" - последние 4 символа из столбца # 1 (с awk, sed).

Я знаю, что прерывание конца строки здесь уже освещалось, но я не знаю, как получить доступ к концу n-го столбца.

Ответы [ 2 ]

4 голосов
/ 02 апреля 2012

Если вы хотите удалить последние 4 символа столбца 1:

awk '{sub(/....$/, "", $1)} 1' filename

Если столбцы разделены пробелами, но не символами табуляции:

sed 's/.... / /' filename
3 голосов
/ 02 апреля 2012

Исходя из вашего выборочного ввода, это будет сделано:

sed 's/\.txt//' filename

Если бы я хотел работать только с первым столбцом, разделенным пробелами, я бы использовал awk или только оболочку:

while read -r col1 col2 col3; do
    printf "%s %s %s\n" "${col1%.txt}" "$col2" "$col3"
done < filename
...