1. 程式人生 > >awk內部呼叫shell命令 -- shell

awk內部呼叫shell命令 -- shell

awk '{system("rm $0")}' filename -------WRONG

因為對於 system來說 $0 不再是某行全部的內容,而是 “sh” , 上面的命令相當於執行“ sh rm sh”

然後

awk '{cmd="rm "$0;system(cmd)}' filename ----OK

下面的也ok

awk '{cmd="rm "$0;cmd|getline }' filename  ---- OK

man awk裡面關於getline的說明,大意是說 執行command,同時會把輸出存在$0 裡面,或引數var中。


       command | getline [var]
                             Run command piping the output either into $0 or var, as above.

       command |& getline [var]
                             Run command as a co-process piping the output either into $0  or  var,  as  above.
                             Co-processes are a gawk extension.

相關推薦

awk內部呼叫shell命令 -- shell

先 awk '{system("rm $0")}' filename -------WRONG 因為對於 system來說 $0 不再是某行全部的內容,而是 “sh” , 上面的命令相當於執行“ sh rm sh” 然後 awk '{cmd="rm "$0;system(cmd)}' filena

awk內部呼叫外部shell命令

awk uses the system function to execute any OS command, and the return code can be captured and checked, as shown below. You can also

awk呼叫系統命令批量處理

工作中經常遇到在輸入一堆檔名的條件下,將其移動或者刪除或者複製。由於輸入是個檔名的集合,而不是單個檔案,因此不能直接用cp或者mv命令,可以通過awk的逐行處理的功能來處理這種情況。以下是一個例子: $ grep -r 'TE' * | cut -d " " -f3 | a

awk呼叫shell命令與getline和system函式

total14 -rw-r--r-- 1 Administrator None 2 Mar 3 20:20 4 -rw-r--r-- 1 Administrator None 0 Feb 28 19:49 4]] -rw-r--r-- 1 Administrator None 87 Mar 5 20:22 a

shell 指令碼中將輸出內容賦值給一個變數時的換行問題(git tag命令內部有less命令)

shell 指令碼中將輸出內容賦值給一個變數時的換行問題(git tag命令內部有less命令) 參考網址 shell 指令碼中將輸出內容賦值給一個變數時的換行問題 注意git tag命令內部有less命令 示例 msg=`git tag` && echo "$m

Spark-Sql整合hive,在spark-sql命令和spark-shell命令下執行sql命令和整合呼叫hive

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Linux的系統呼叫 網路連線狀態 磁碟I/O 可疑行為監控/日誌收集 SHELL命令執行流程

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

linux開機自啟動與shell命令呼叫

1、編輯/etc/rc.local,例如要執行haha.sh,在中/etc/rc.local加一行“/opt/./haha.sh”,或者兩行“cd /opt”和“./haha.sh”。 2、實現和shell一樣的功能,首先寫一個函式,函式名是其引數,放入到資料夾/bin下面,這樣就直接能在終

pycharm呼叫shell命令

在pycharm中呼叫shell命令 1、 # -*- coding:UTF-8 -*- import subprocess subprocess.call(["ls /home"], shell=True) #subprocess.call(["cat /root/d.txt | grep hel

java中呼叫shell命令

import java.io.BufferedReader; import java.io.InputStreamReader; public class Shell { public static void main(String[] args) { String command =

shell命令-awk

|–awk命令列 awk的呼叫可以定義變數、提供程式、指定輸入檔案 awk [-F fs] [-v var=value … ] ‘program’ [ – ] [ var=value … ] [ file(s) ] awk [-F fs] [-v var=va

hive呼叫Linux的shell命令測試

hive>SELECT TRANSFORM(a.id,a.name) USING '/bin/cat -n'  AS (num,id,name) FROM cjhtest a; Query ID = hadoop_20150915011212_ab2c282c-85cc-4c23-9f3b-618b

Python呼叫shell命令的幾種方法(在新程序中執行shell命令

有時候難免需要直接呼叫Shell命令來完成一些比較簡單的操作,比如mount一個檔案系統之類的。那麼我們使用Python如何呼叫Linux的Shell命令?下面來介紹幾種常用的方法: 1. os 模組 1.1. os模組的exec方法族 Python的exec系

go語言exec包呼叫shell命令

工程中需要用到ffmpeg,想直接用exec包呼叫shell命令。本來以為很簡單,結果折騰了一下午,最後查到了解決方案。 假如之前執行報錯的語句為: cmd := exec.Command("echo", "'helloworld!'") out, err := cmd.

shell指令碼中如何呼叫hadoop 命令

我們在shell指令碼中可能會用到hadoop或者其他命令,而這些命令可能是一個整體,如果我們只是簡單的寫入到shell指令碼中,可能會被分解成其他的各個子欄位,即有可能會分成兩部分去執行,這樣就會導致命令執行失敗。 hadoop fs -get /XX

c/c++程式內部呼叫shell指令碼

system() 函式原型: #include <stdlib.h> int system(const char *str) 指令碼示例test.sh #!/bin/sh echo $HOME 指令碼呼叫程式示例demo.cc #include

java呼叫shell命令並獲取執行結果

原文地址:http://blog.csdn.net/arkblue/article/details/7897396 使用到Process和Runtime兩個類,返回值通過Process類的getInputStream()方法獲取 package ark;

Linux下使用c++呼叫shell命令

1:system() 宣告: extern int system (const char *__command) __wur; 函式說明:首先會呼叫fork()產生子程序,由子程序執行具體的命令,呼叫system期間,SIGG HID訊號會被擱置,但是SIGINT和SI

Java呼叫shell命令解壓.7z壓縮包

Linux下解壓.7z壓縮包,java呼叫shell命令執行,解壓速度是java程式解壓的幾十倍乃至更多,首先確認主機上已安裝.7z命令。 package com.annet.upload.core.utils; import java.io.Buffe

Java呼叫Shell命令和指令碼

1.介紹 有時候我們在Linux中執行Java程式時,需要呼叫一些Shell命令和指令碼。而Runtime.getRuntime().exec()方法給我們提供了這個功能,而且Runtime.getRuntime()給我們提供了以下幾種exec()方法: Process e