Linux:为什么我这样使用awk就没有输出结果呢? 为什么我的linux使用如下命令:# awk -F: '$3...

Linux\uff1a\u4e3a\u4ec0\u4e48awk\u6307\u4ee4\u4e2d\uff0c\u5bf9NF++\u540e\u8f93\u51fa\u7ed3\u679c\u6709\u5f71\u54cd\u5462

\u4e0d\u660e\u767d\u7684\u65f6\u5019\uff0c\u9996\u5148\u662f\u5c1d\u8bd5\uff1a
echo "111|222|333"|awk 'BEGIN{FS=""}{NF++;print $1}'echo "111|222|333"|awk 'BEGIN{FS=""}{NF++;print $2}'echo "111|222|333"|awk 'BEGIN{FS=""}{NF++;print $3}'echo "111|222|333"|awk 'BEGIN{FS=""}{NF++;print $4}'echo "111|222|333"|awk 'BEGIN{FS=""}{NF++;print $5}'\u53d1\u73b0\u8f93\u51fa\u90fd\u6ca1\u6709\u53d8\u5316\uff0c\u4e0d\u53d7NF++\u7684\u5f71\u54cd\u3002
\u56e0\u6b64\u6000\u7591\u53ea\u6709$0\u6709\u7384\u673a\u3002

\u5176\u6b21\u5c31\u662f\u67e5\u9605man awk\uff0c\u641c\u7d22\$0\u5bfb\u6c42\u7b54\u6848\u3002\u4e8e\u662f\u53d1\u73b0\u4e0b\u9762\u8fd9\u6bb5\u8bdd\uff08\u539f\u6c41\u539f\u5473\u7684\uff09\uff1a
\u201cReferences to non-existent fields (i.e. fields after $NF) produce the null-string. However, assigning to a non-existent field (e.g., $(NF+2) = 5) increases the value of NF, creates any intervening fields with the null string as their value, and causes the value of $0 to be recomputed, with the fields being separated by the value of OFS. References to negative numbered fields cause a fatal error. Decrementing NF causes the values of fields past the new value to be lost, and the value of $0 to be recomputed, with the fields being separated by the value of OFS.\u201d
\u6211\u53ef\u4ee5\u9488\u5bf9\u4e3b\u8981\u5185\u5bb9\u5927\u81f4\u7ffb\u8bd1\u4e00\u4e0b\uff1a
\u4efb\u4f55\u5bf9\u5185\u7f6e\u53d8\u91cfNF\u7684\u6539\u53d8\u90fd\u4f1a\u5bfc\u81f4$0\u88ab\u91cd\u65b0\u8ba1\u7b97\uff0c\u91cd\u6784$0\u65f6\u4ee5OFS\u7684\u503c\uff08\u9ed8\u8ba4\u4e3a\u7a7a\u683c\uff09\u4f5c\u4e3a\u5b57\u6bb5\u5206\u9694\u3002\u589e\u52a0NF\u503c\uff0c\u4e0d\u5b58\u5728\u7684\u5b57\u6bb5\u5c06\u4ee5\u7a7a\u5b57\u7b26\u4e32\u586b\u5145\uff1b\u51cf\u5c11NF\u503c\uff0c\u4f1a\u5bfc\u81f4\u8d85\u51fa\u5176\u957f\u5ea6\u7684\u5b57\u6bb5\u4e22\u5931\u3002

\u4e3a\u4e86\u9a8c\u8bc1\uff0c\u53ef\u4ee5\u8bd5\u8bd5\u4e0b\u9762\u4e24\u4e2a\u4f8b\u5b50\u3002
\u3010\u4f8b\u4e00\u3011
$ echo "111|222|333"|awk 'BEGIN{FS=""}{NF+=5;print $0"--"}'1 1 1 | 2 2 2 | 3 3 3 --\u5b57\u6bb5\u4ee5OFS\uff08\u7a7a\u683c\uff09\u5206\u9694\uff0c\u5e76\u4e14\u65b0\u589e\u76845\u4e2a\u5b57\u6bb5\u90fd\u4ee5\u7a7a\u5b57\u7b26\u4e32\u586b\u5145\u3002
\u3010\u4f8b\u4e8c\u3011
$ echo "111|222|333"|awk 'BEGIN{FS=""}{NF-=2;print $0"--"}'1 1 1 | 2 2 2 | 3--\u5b57\u6bb5\u4ee5OFS\uff08\u7a7a\u683c\uff09\u5206\u9694\uff0c$0\u4e2d\u8d85\u51fa\u65b0NF\u5927\u5c0f\u7684\u5b57\u6bb5\u4e22\u5931\u3002

\u8fd9\u4e2a\u5e94\u7528\u53ef\u4ee5\u4f7f\u7528JavaConfig\u5b8c\u6210\u914d\u7f6e\u3002\u6211\u628a\u5b83\u5207\u5206\u4e3a\u4e0b\u9762\u51e0\u4e2a\u90e8\u5206\uff1a
ServicesConfig\uff08\u670d\u52a1\u914d\u7f6e\uff09
\u65e0\u9700\u626b\u63cf\u7ec4\u4ef6\uff0c\u914d\u7f6e\u771f\u7684\u975e\u5e38\u7b80\u5355\uff1a

@Configuration
public class ServicesConfig {
@Autowired
private AccountRepository accountRepository;

@Bean
public UserService userService() {
return new UserService(accountRepository);
}

awk的格式:

awk [选项]  ' BEGIN{编辑指令 } {编辑指令} END{编辑指令}'  文件

BEGIN{},行前处理

——在读入行之前的操作,通常用来初始化操作,是可选操作

只做预处理的时候,可以没有操作文件。可以用这个

 

{},行处理,

——awk处理读入的行

 

END{},行后处理

——awk把所有的行都处理完后执行的操作;一般输出处理结果



这三个是可以独立使用的。



val=$(awk
'BEGIN{print 7.01*5-4.01}')

echo $val

这个是行前处理,并没有对文件进行读取,它的效果就是对括起来的数进行运算



val=$(awk
'{print 7.01*5-4.01}')

echo $val

它是错误的写法,按照格式来说应该是行处理,但后边并没有文件,所以它无法进行操作。



祝你好运~~~~

望采纳~~~



这是因为在存在BEGIN的情况下,不管有没有输入,awk都会在输出的开头执行print 7.01*5-4.01
这个命令。
在没有BEGIN时(也就是第二种情况),你没有给awk输入,awk也就不会执行print 7.01*5-4.01
这条命令。对于该种情况,一种解决办法是,将
val=$(awk'{print 7.01*5-4.01}') 改为
val=$(awk'{print 7.01*5-4.01}' <<<"")
修改之后相当于给了awk一个空的输入,这样print 7.01*5-4.01就能被执行了。

begin 是在处理每一条记录之前就处理的,
你这个只是一个运算输出,所以在处理文件之前可以有返回
你把它加到了主题部分里,你的文件如果有10行的话就会返回10次结果,你现在没结果 说明你的文件是空的

  • linux鎶婃枃浠朵腑鍚湁a鐨勮鏀惧埌鍙︿竴涓枃浠?
    绛旓細鍙互浣跨敤Linux涓殑grep鍛戒护鍜岄噸瀹氬悜绗﹀彿鏉ュ疄鐜板皢鏂囦欢涓惈鏈"a"鐨勮鏀惧埌鍙︿竴涓枃浠剁殑鎿嶄綔锛屽叿浣撴楠ゅ涓嬶細1. 鎵撳紑闇瑕佸鐞嗙殑鏂囦欢锛屼緥濡俧ile.txt锛歚vi file.txt`2. 浣跨敤grep鍛戒护鎼滅储鏂囦欢涓惈鏈"a"鐨勮锛屽苟灏嗙粨鏋滆緭鍑哄埌鍙︿竴涓枃浠秓utput.txt锛歚grep "a" file.txt > output.txt`- `grep "a" fil...
  • 鍛戒护浣跨敤Linuxaplay鍛戒护鎾斁澹伴煶linuxaplay
    绛旓細audacious 鎬荤殑鏉ヨ锛浣跨敤Linux aplay鍛戒护鍙互寰堝鏄撳湴鎾斁澹伴煶鏂囦欢锛岃屾棤闇浠讳綍澶嶆潅鐨勬搷浣滐紝瀹冨彲浠ヤ笉浠呮挱鏀惧父瑙佺殑闊抽鏂囦欢鏍煎紡锛屼篃鍙互鎺у埗澹伴煶鐨勮緭鍑鸿澶囥
  • 涓轰粈涔坙inux閲鎴戠敤ls -d [a-c]* 鎼滅储涓嶅嚭澶у啓C鐨勬枃浠跺すls -d [^a-c...
    绛旓細ls -d [^a-c]* 鏄绗竴涓瓧绗 闈瀉 闈瀊 闈 c 鐨勫瓧绗︿覆銆傚簲璇ユ槸鍖哄垎澶у皬鍐欑殑銆備絾鏄垜鐪嬩綘鐨勭涓涓粨鏋滃ソ鍍忎笉澶銆 鍥犱负鏈夊ぇ鍐欏紑澶寸殑ABC銆傚笇鏈涘浣犳湁甯姪銆
  • linux shell:鑳戒粠鍘熺悊涓婄粰鎴戣璁涓轰粈涔瑕佸啓 ((a=$a+1))?
    绛旓細a=3 鍋囧涓嶅姞涓や釜鎷彿锛岀郴缁熶互涓烘槸瀛楃涓茬殑褰㈠紡锛岀粨鏋滀负 鈥3+1鈥濓紝杩欎釜鏄瓧绗︿覆 鍔犱簡涓や釜鎷彿锛岃绯荤粺鐭ラ亾浜嗛噷闈㈢殑鍊艰杩涜杩愮畻锛岀粨鏋滀负 鈥4鈥濊嚦浜涓轰粈涔鍔犱竴涓嫭鍙蜂笉琛岋紝鏄洜涓鸿繍绠楃殑鏍煎紡灏辨槸瑕佸姞涓や釜鎷彿 鍥犱负涓涓嫭鍙风殑鏍煎紡浠h〃鍏朵粬鐨勪綔鐢 ...
  • linux瀵煎嚭琛ㄦ暟鎹涓轰粈涔琛ㄥ悕鍚庨兘甯"A"
    绛旓細杩欐槸linux宸ョ▼甯堥氬父鐢ㄧ殑tmp鏂囦欢鍐欐硶锛屾瘮濡俵ic.sdf*鍙互褰撳仛lic.sdf鐨勪竴涓殏鏃剁殑澶囦唤銆linux鐨涓昏鐨勪紭鐐规湁锛氫粬鐨勫紑婧愶紝浠讳綍浜洪兘鏄彲浠ユ煡鐪嬩粬鐨勬簮浠g爜鐨勶紝杩欎娇寰椾粬鐗瑰埆鐨勫畨鍏紝鑰寃indows鍒欎笉寮婧愶紝鎵浠ヤ綘瑕佺粡甯哥殑鎵撹ˉ涓侊紝淇ˉ婕忔礊涔嬬被鐨勩俵inux鍐呮牳浼樺寲鐨勫ソ锛屾病鏈夊摢涓猯inux闇瑕佸彸閿殑鍒锋柊閿紙绾㈡棗linux鏄...
  • linux涓嬬殑so,o,lo,a,la鏂囦欢鏈浠涔鍖哄埆
    绛旓細o: 缂栬瘧鐨勭洰鏍囨枃浠 a: 闈欐佸簱锛屽叾瀹炲氨鏄妸鑻ュ共o鏂囦欢鎵撲簡涓寘 so: 鍔ㄦ侀摼鎺ュ簱锛堝叡浜簱锛塴o: 浣跨敤libtool缂栬瘧鍑虹殑鐩爣鏂囦欢锛屽叾瀹炲氨鏄湪o鏂囦欢涓坊鍔犱簡涓浜涗俊鎭 la: 浣跨敤libtool缂栬瘧鍑虹殑搴撴枃浠讹紝鍏跺疄鏄釜鏂囨湰鏂囦欢锛岃褰曞悓鍚嶅姩鎬佸簱鍜岄潤鎬佸簱鐨勭浉鍏充俊鎭 ...
  • 涓轰粈涔堟垜鐢mount -a鍛戒护,Linux娌″弽搴斿晩,/etc/fstab涓嬫湁鍐呭鍟
    绛旓細1銆侀鍏堢涓姝ュ湪鐢佃剳USB鎺ュ彛鎻掑叆浜嗕竴涓猆鐩橈紝鍦linux绯荤粺涓紝娉ㄦ剰鐨勬槸杩欐椂鍊欏彲浠浣跨敤mount鍛戒护鎸傝浇鍏夌洏闀滃儚鏂囦欢銆佺Щ鍔ㄧ‖鐩樸乁鐩樹互鍙奧indows缃戠粶鍏变韩鍜孶NIX NFS缃戠粶鍏变韩銆2銆佹帴鐫灏辨槸鎻掑叆U鐩樹箣鍓嶏紝鐢╢disk 鈥搇 鏌ョ湅绯荤粺鐨勭‖鐩樺拰纭洏鍒嗗尯鎯呭喌锛歔root at pldyrouter root]# fdisk -lDisk /dev/sda: 73 dot...
  • LINUX甯歌闂20涓
    绛旓細渚嬪:rpm -Uvh fvwm95-2.1.0a.chinese-1.i386.rpm,RPM鑷姩鍙嶅畨瑁呭師鏉ョ殑鑰佺増鏈,灏嗗崌绾х増鐨勮蒋浠跺畨瑁呭叆绯荤粺銆鎬庝箞鏍,涓嶉毦鍚! 涓夈濡備綍瀹夎Linux鐨搴旂敤杞欢 瀵逛簬鏅氱敤鎴,瀹夎鎴栧崌绾ц蒋浠跺彲浠ョ敤Red Hat鍏徃鐨勮蒋浠跺寘瀹夎涓庣鐞嗗伐鍏稲PM銆浣跨敤鍚庝綘灏卞彲浠ヨ交鏉惧畨瑁呰蒋浠躲佸崌绾ц蒋浠跺拰鍗歌浇杞欢骞舵煡璇㈣蒋浠朵俊鎭 濡傛灉浣犲畨瑁呯殑...
  • Linux鍛戒护ls -a鍜宭s -A鐨勫惈涔夋槸浠涔?
    绛旓細ls鍛戒护鐢ㄤ簬鏄剧ず鏂囦欢鐩綍鍒楄〃锛屽拰Windows绯荤粺涓婦OS鍛戒护dir绫讳技銆傚綋鎵цls鍛戒护鏃讹紝榛樿鏄剧ず鐨勫彧鏈夐潪闅愯棌鏂囦欢鐨勬枃浠跺悕銆佷互鏂囦欢鍚嶈繘琛屾帓搴忓強鏂囦欢鍚嶄唬琛ㄧ殑棰滆壊鏄剧ず銆傚綋涓嶅姞鍙傛暟鏃讹紝榛樿鍒楀嚭褰撳墠鐩綍鐨勫垪琛ㄤ俊鎭俵s [閫夐」] [鐩綍鎴栨枃浠跺悕]鍙傛暟锛1銆-a锛--all鐨勭缉鍐欙紝鏄剧ず鎵鏈夌殑鏂囦欢锛屽寘鎷殣钘忔枃浠(浠.寮澶寸殑...
  • Linux ip a 鍛戒护浣滅敤鏄浠涔?
    绛旓細ip鍛戒护 鈥 鏄剧ず涓庢搷浣滆矾鐢 銆Linux灏辫杩欎箞瀛︺嬪懡浠ゅぇ鍘绘煡璇㈠埌锛宨p鍛戒护鐢ㄦ潵鏄剧ず鎴栨搷绾礚inux涓绘満鐨勮矾鐢便佺綉缁滆澶囥佺瓥鐣ヨ矾鐢卞拰闅ч亾锛屾槸Linux涓嬭緝鏂扮殑鍔熻兘寮哄ぇ鐨勭綉缁滈厤缃伐鍏枫備緥濡锛氱敤ip鍛戒护鏄剧ず缃戠粶璁惧鐨勮繍琛岀姸鎬:ip link list ip a 鏌ョ湅鎵鏈夌綉鍗$殑鎺ュ彛淇℃伅銆傚湪杩欓噷a涓嶆槸閫夐」鏄璞★紙OBJECT锛夛細address ...
  • 扩展阅读:linux网站入口 ... linux vim进入编辑模式 ... 自学linux哪里学最好 ... 在线linux如何使用 ... linux vi使用 ... linux最新版本 ... linux为什么很少人用 ... linux入门 ... linux为什么可以免费使用 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网