2013-11-15 4 views
1

파일이 있습니다 특정 행의 여러 특정 열에 특정 문자를 추가하고 싶습니다. eaxample 내 파일에 대해 내가 초 후에 모든 컬럼에 판매 문자를 추가 할특정 행의 특정 여러 열에 문자 추가

shirts pants tshirts greet 
100000 11111 1200000 131313 
123456 15823 1542358 752256 

경우에만 첫 번째 행에 (알 수없는 여러 열이있을 수 있습니다.) 나는

NR<2 and NF>2 

를 사용하여 처음 사용하여 행과 열을 선택할 수 있습니다하지만 각 분야에 어떻게 추가합니까? 나는 당신이 바로 NR<2NF>2의 사용에 대해이었다 내 대답은

shirts pants soldtshirts soldgreet 
100000 11111 1200000 131313 
123456 15823 1542358 752256 

답변

2

되고 싶어요.

$ awk 'NR==1{for (i=3; i<=NF; i++) $i="sold"$i}1' a 
shirts pants soldtshirts soldgreet 
100000 11111 1200000 131313 
123456 15823 1542358 752256 

NR==1 (첫 번째 줄)에 마지막으로 필드 추기로 3 일부터 루프 각 사람에게 "판매"이런 식으로 뭔가 해결책이 될 수 있습니다. 그런 다음 1이 true로 평가되고 모든 경우에 전체 줄이 인쇄됩니다.

0
awk 'NR==1{x=$1"\t"$2;for(i=3;i<=NF;i++)x=x"\tsold"$i;$0=x}1' file 
2

이 당신을 위해 작동 할 수 있습니다 (GNU 나오지도) :

sed -i '1s/\S\+/sold&/3g' file 
관련 문제