如何将一个添加到文件中的所有字段

时间:2017-08-21 15:39:40

标签: bash

假设我的文件包含以下数字:

1

我希望将2 5 8 3 6 9 添加到所有这些数字中,输出如下:

.success (function (result){
    $("#grid").data("kendoGrid").dataSource.data(result.data);
})

有一个简单的单行命令(例如awk)来实现这个吗?

4 个答案:

答案 0 :(得分:2)

尝试一次。

initDefaultClock()

编辑:根据OP的无循环请求,这是一个解决方案(按照所示的示例编写)。

awk '{for(i=1;i<=NF;i++){$i=$i+1}} 1'   Input_file

说明:所以在编辑部分第一个解决方案中我通过提到3来硬编码字段数,在编辑的OR解决方案中,我创建了一个名为col的变量,它将读取第一行Input_file获取字段数。然后它将不会读取所有的Input_file,现在进入我已设置的记录分隔符作为空格或新行,它将添加它们而不使用循环,并且每次在它们的值中递增1后将添加空格。只有当行数完全除以col的值时才会打印新行(这就是我们在-v col部分中占用字段数的原因)。

答案 1 :(得分:1)

在原生bash中(不需要from PyQt4 import QtGui #import the PyQt4 module we need from PyQt4.Qt import QDialog import sys #sys needed so we can pass argv to QApplication import mainwin import dialog class MainApp(QtGui.QMainWindow, mainwin.Ui_MainWindow): '''Main window of the application''' def __init__(self, parent=None): super(MainApp, self).__init__(parent) self.setupUi(self) # This is defined in design.py file automatically # It sets up layout and widgets that are defined self.label.setText("I am unchanged text") self.pushButton.clicked.connect(self.openDialog)#button binding - call openDialog method def openDialog(self): # Opening a new popup window... self.dialog = MyDialog() self.a = self.dialog.exec_() #exec_() for python2.x, before python3 if self.a == self.dialog.Accepted: self.label.setText("Accepted") #<-----HERE-- elif self.a == self.dialog.Rejected: #0 self.label.setText("Rejected") class MyDialog(QtGui.QDialog, dialog.Ui_Dialog): def __init__(self, parent = MainApp): QDialog.__init__(self) self.setupUi(self) #takes ui from my-defined dialog.py self.comboBox.addItem('item 1');#adding items to the QCombobox to be displayed self.comboBox.addItem('item 2'); self.comboBox.addItem('item 3'); self.comboBox.addItem('special1'); self.comboBox.activated[str].connect(self.my_method) def my_method(self, my_text): print my_text #return my_text def main(): app = QtGui.QApplication(sys.argv)# A new instance of QApplication form = MainApp() # We set the form to be our ExampleApp (design) form.show() # Show the form app.exec_() # and execute the app if __name__ == '__main__': #if the app is running directly, and is not imported main() 或其他外部工具):

awk

答案 2 :(得分:1)

您可以使用gnu awk:

执行此操作
awk -v RS="[[:space:]]+" '{$0++; ORS=RT} 1' file

2 5 8
3 6 9

答案 3 :(得分:0)

如果你不介意Perl

perl -pe 's/(\d+)/$1+1/eg' file

将由多个数字(\d+)组成的任何数字替换为该数字($1)加1. /e表示执行替换计算,/g表示全局整个文件。

如评论中所述,上述仅适用于正整数 - 根据OP的原始样本文件。如果您希望它使用负数,小数并仍保留文本和间距,您可以选择以下内容:

perl -pe 's/([-]?[.0-9]+)/$1+1/eg' file

输入文件

Some column headers   # words
1 4 7                 # a comment
2       5 cat     dog # spacing and stray words
+5 0                  # plus sign
-7 4                  # minus sign
+1000.6               # positive decimal
-21.789               # negative decimal

<强>输出

Some column headers   # words
2 5 8                 # a comment
3       6 cat     dog # spacing and stray words
+6 1                  # plus sign
-6 5                  # minus sign
+1001.6               # positive decimal
-20.789               # negative decimal