修剪第n列unix的结尾

时间:2012-04-02 16:12:55

标签: sed awk

我有表结构:

  

ous.txt 1452 1793

out.txt 36796 14997

ouw.txt 478   4247

3列&很多行。

我想修剪“.txt” - #1列中的最后4个字符(使用awk,sed)。

我知道切断线的末尾在这里被覆盖了,但我不知道如何访问第n列的末尾。

2 个答案:

答案 0 :(得分:4)

如果要删除第1列的最后4个字符:

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

如果列由空格分隔,而不是标签:

sed 's/.... / /' filename

答案 1 :(得分:3)

根据您的示例输入,这样做:

sed 's/\.txt//' filename

如果我只想在第一个以空格分隔的列上操作,我会使用awk或只使用shell:

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