亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12
最近訪問板塊 發(fā)新帖
樓主: legone2008
打印 上一主題 下一主題

[文本處理] 求助用sed或awk進行文件替換 [復(fù)制鏈接]

論壇徽章:
0
11 [報告]
發(fā)表于 2014-04-17 11:14 來自手機 |只看該作者
本帖最后由 legone2008 于 2014-04-17 11:22 編輯

printf是格式化輸出,這個我也考慮過。
由于輸入得的參數(shù),除了已知%s確定為要替換的字符串外,其他值是不確定的,比如參數(shù)1中出現(xiàn)%80,%%%,這個時候printf就要出錯了。目前7樓的答案是最適合的。

論壇徽章:
6
摩羯座
日期:2013-12-27 09:45:04技術(shù)圖書徽章
日期:2014-01-27 12:40:06辰龍
日期:2014-02-28 15:12:52巳蛇
日期:2014-03-21 17:06:27未羊
日期:2014-04-15 20:12:41黑曼巴
日期:2016-08-02 11:00:06
12 [報告]
發(fā)表于 2014-04-17 11:34 |只看該作者
回復(fù) 11# legone2008


    難道說參數(shù)1不是你控制的,是隨機出現(xiàn)的?

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
13 [報告]
發(fā)表于 2014-04-19 22:14 |只看該作者
本帖最后由 blackold 于 2014-04-19 22:22 編輯

回復(fù) 1# legone2008


Try

test.sh
  1. #!/bin/sh
  2. tmpfile=$.tmp
  3. for i in "$@";do echo -E "$i" >> $tmpfile;done
  4. awk 'NR==1{split($0,a,/%s/);printf a[1];next}{printf "%s%s",$0,a[NR]}END{print ""}' $tmpfile
  5. rm $tmfile
復(fù)制代碼
  1. ./test.sh arg1 arg2 arg3
復(fù)制代碼

論壇徽章:
3
酉雞
日期:2014-04-23 17:17:56丑牛
日期:2014-05-08 11:41:302015亞冠之德黑蘭石油
日期:2015-08-03 11:14:27
14 [報告]
發(fā)表于 2014-04-21 14:56 |只看該作者
本帖最后由 jeffreyst 于 2014-04-21 15:02 編輯

cat temp
nsufficient free space in the %s  directory. The free space is only %s. At least %s is required.

cat test.sh
  1. #! /bin/bash

  2. cat temp  | sed 's/%s/\n\n/g' | awk -va="$1" -vb="$2" -vc="$3" '
  3. {if(NR==2)
  4.         {
  5.                 print a
  6.         }
  7.         else
  8.         {
  9.                 if(NR==4)
  10.                 {
  11.                         print b
  12.                 }
  13.                 else
  14.                 {
  15.                         if(NR==6)
  16.                         {
  17.                                 print c
  18.                         }
  19.                         else{
  20.                                 print $0
  21.                         }
  22.                 }
  23.         }
  24. }'| sed ':1;N;s/\n//;t1'
復(fù)制代碼
./test.sh /export/home %50 %10
nsufficient free space in the /export/home  directory. The free space is only %50. At least %10 is required.
這種方法好像可以實現(xiàn),但是有點復(fù)雜,應(yīng)該可以再優(yōu)化下...
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP